Install
openclaw skills install @mailtrap/using-email-templatesUse 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.
openclaw skills install @mailtrap/using-email-templatesTemplates 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).
template_uuid and template_variablesIn the developer docs, open:
https://send.api.mailtrap.io)https://bulk.api.mailtrap.io)Request body variant is typically EmailFromTemplate in the interactive reference.
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.
curl) — template sendcurl -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"}
}'
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.
{{name}} — escaped output; {{{html}}} — raw HTML{{#if}} / {{#unless}}, {{#each}}, {{#with}}{{order.id}}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).
Templates in the app sidebar. UUID and stream-specific integration snippets are under each template's Integration tab.
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).
| Mistake | Fix |
|---|---|
Mixing text/html with template_uuid | Use template fields per API schema for template sends |
| Skipping sandbox for risky changes | Preview with sandbox sending / Testing API (see testing-with-sandbox and send test emails) |