How to use Draftship with Postmark
Postmark templates use Mustachio (their Mustache fork) and ship via the v1 email API. Save a Draftship export as a Postmark template, parameterize it, and let Postmark's deliverability-first reputation do the heavy lifting.
Postmark made deliverability its product wedge. Their separate IP pools, strict policy on bulk-vs-transactional, and obsession with inbox placement mean their senders consistently outperform peers on the deliverability metrics that matter. The template system uses Mustachio, a slightly extended Mustache that handles loops and conditionals.
Where Postmark accepts pasted HTML
From the dashboard: pick a server, go to Templates → Create Template → Use Code Editor. Postmark splits each template into Subject, HtmlBody, and TextBody. Paste your Draftship export into HtmlBody. Postmark can auto-generate the text version, or you can paste a hand-crafted plain text.
Postmark templates support layouts: a parent shell containing {{{ @content }}} that wraps individual templates. Useful for keeping a consistent header/footer across many templates. If you prefer to keep your full HTML in one Draftship export per template, skip layouts.
Mustachio personalization
| Draftship | Postmark |
|---|---|
{{ first_name }} | {{first_name}} |
{{ last_name }} | {{last_name}} |
{{ email }} | {{email}} |
| Default fallback | {{#first_name}}{{first_name}}{{/first_name}}{{^first_name}}there{{/first_name}} |
| Loops | {{#items}}<p>{{name}}</p>{{/items}} |
| Negation block | {{^items}}<p>No items.</p>{{/items}} |
| HTML-unescaped | {{{html_field}}} (triple braces) |
Note the triple-brace pattern: {{{value}}} doesn't HTML-escape the substituted value. Use this only when you trust the source, since it lets HTML through into the rendered output.
Sending via the API
The send is one POST per recipient (or batch up to 500):
json{ "From": "noreply@yourdomain.com", "To": "user@example.com", "TemplateAlias": "welcome-email", "TemplateModel": { "first_name": "Alex", "company": "Acme" }, "MessageStream": "outbound" }
The MessageStream matters: Postmark separates streams for transactional and broadcast/marketing. Send a marketing email on the transactional stream and Postmark will throttle or block your account.
Streams: Transactional vs Broadcasts
- Transactional Stream: receipts, password resets, account notifications. Reputation is precious; volume is rate-limited per account.
- Broadcast Streams: opt-in marketing. Separate IP pool, separate reputation, separate quota.
When you build a Draftship export, decide which stream it belongs to before configuring the template. Postmark assumes transactional by default.
Test send checklist
- Use the Postmark template editor's Test feature with a real model JSON.
- Send a real test through the API to your inbox.
- Run the output through the size checker.
- Verify the Sender Signature for the from-address is fully verified.
When to switch from SendGrid or Mailgun
Postmark's pricing skews higher than SendGrid for high volume but their inbox placement is consistently better. If your business depends on transactional email arriving in the primary inbox (password reset, magic link, receipt), the cost per inbox-landed email at Postmark often beats cheaper alternatives.
For deliverability fundamentals, see Gmail and Yahoo bulk sender requirements.