Design & media

using-email-templates

Try it

Use when creating or sending Mailtrap-hosted email templates, Handlebars personalization, template UUID in API payloads, or debugging variables and preview. Use when separating email design from application code for transactional or bulk sends.

What it does

Use when creating or sending Mailtrap-hosted email templates, Handlebars personalization, template UUID in API payloads, or debugging variables and preview. Use when separating email design from application code for transactional or bulk sends.

The skill document

Using Mailtrap email templates

Overview

Templates are edited in the Mailtrap UI, referenced by UUID from your app, and filled with Handlebars data at send time. The same template can be used with transactional and bulk (promotional) streams; pick the stream when you integrate.

Before generating SDK code: read the README of the relevant SDK repository linked below for current method signatures. Do not rely on memory.

Before generating API request bodies: use the official docs and examples below—request shapes belong in the API reference, not in guesses (including when using AI-assisted coding).

Template management via API (create/update/list outside the UI): Templates API.

Related skills: authorizing-api-requests (tokens, env vars, auth headers), sending-emails (bases and streams), testing-with-sandbox (preview sends without live delivery).

When to use

  • When sending or testing emails with Mailtrap-hosted templates (UUID in the send payload)
  • Creating or editing templates in the UI
  • Templates CRUD via Templates API (automations, provisioning)
  • API body using template_uuid and template_variables
  • Handlebars conditionals, loops, escaped vs unescaped HTML

Quick reference

API operations

In the developer docs, open:

Request body variant is typically EmailFromTemplate in the interactive reference.

Authorization

Send with Authorization: Bearer $MAILTRAP_API_TOKEN on the matching stream host (send.api.mailtrap.io or bulk.api.mailtrap.io). Token scope, storage, and the alternative Api-Token header are covered in skill authorizing-api-requests.

Example (curl) — template send

curl -X POST https://send.api.mailtrap.io/api/send \
  -H "Authorization: Bearer $MAILTRAP_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "from": {"email": "hello@yourdomain.com", "name": "Your App"},
    "to": [{"email": "user@example.com"}],
    "template_uuid": "your-uuid",
    "template_variables": {"user_name": "Jane"}
  }'

Payload shape

Replace literal text/html with template fields, for example:

  • template_uuid (from the template Integration tab)
  • template_variables (object whose keys match Handlebars variables)

Exact required fields (e.g. from, to) follow the same rules as non-template sends for that stream.

Handlebars (supported patterns)

  • {{name}} — escaped output; {{{html}}} — raw HTML
  • {{#if}} / {{#unless}}, {{#each}}, {{#with}}
  • Nested paths such as {{order.id}}
  • Falsy values that suppress blocks include empty string, 0, false, empty collections (see product docs)

Full syntax and examples: Using Handlebars with Email Templates. Testing workflow: Testing templates with Handlebars. Sandbox preview sends: Send test emails (sandbox).

Where templates live

Templates in the app sidebar. UUID and stream-specific integration snippets are under each template's Integration tab.

Generating template HTML

Proactively offer to generate the template HTML when the user is creating a new template — don't wait to be asked. The output must be a real email template — not arbitrary web HTML — and must be mobile-compatible (responsive, renders well across email clients and screen sizes).

SDKs

Common mistakes

MistakeFix
Mixing text/html with template_uuidUse template fields per API schema for template sends
Skipping sandbox for risky changesPreview with sandbox sending / Testing API (see testing-with-sandbox and send test emails)

Related skills

Use when integrating, configuring, or troubleshooting Mailtrap live email sending (Email API or SMTP). Use when wiring outbound mail from an application or choosing how to send.

1 installs

Use when authenticating or authorizing requests to any Mailtrap API (Email Send, Email Testing/Sandbox, Templates, Contacts, Sending Domains, Suppressions). Use when picking the auth header, choosing token scope, storing tokens safely, or resolving the Mailtrap account_id. Use before writing or gene

1 installs

Use when adding or verifying a Mailtrap sending domain, DNS propagation issues, registrar or DNS provider steps, compliance after verification, or click tracking. Domain must be verified before sending from it.

1 installs

Use when capturing outbound email in development or staging without delivering to real recipients, inspecting HTML or headers, running spam or structure checks, or automating tests against a fake inbox. Use when testing outgoing mail from an app without committing to a production ESP yet. Use when u

1 installs

Use when converting or migrating email templates from another provider (SendGrid, Mailgun, Mandrill, Postmark, Brevo, Amazon SES) to Mailtrap-compatible Handlebars syntax. Supports single file, bulk directory, and inline HTML conversion.

1 installs

Use when using Mailtrap Contacts API or UI to add, update, bulk import, list, segment marketing contacts, custom fields, or custom events. Use when syncing contacts from a CRM or warehouse, or building audiences for campaigns.

1 installs