Postmark is the right default for most WordPress sites sending transactional email. Its architecture enforces a separation between transactional and broadcast streams (different IP pools, different reputations), which means your password resets never compete with marketing campaigns for sender reputation. The service does one thing, deliver email reliably, and charges a slight premium for doing it well.
Postmark was founded in 2010 by Wildbit and acquired by ActiveCampaign in 2022. The acquisition has not changed Postmark’s pricing model or API, though long-term pricing direction under ActiveCampaign’s portfolio is worth watching.
The exceptions to the recommendation are predictable: sites sending over 100,000 emails/month will find Mailgun or Amazon SES cheaper at scale. Sites that need transactional and marketing email from one provider are better served by Brevo or Mailjet, which handle both without the stream separation that Postmark enforces. Sites that need a genuinely free tier for production should look at SMTP2GO (1,000 emails/month, no restrictions); Postmark’s free plan caps at 100 emails/month and exists for testing, not for running a live site.
SMTP settings
| Setting | Value |
|---|---|
| Host | smtp.postmarkapp.com |
| Port | 587 (recommended), also 25, 2525 |
| Encryption | STARTTLS |
| Authentication | PLAIN or LOGIN |
| Username | Server API Token (or SMTP Token access key) |
| Password | Server API Token (or SMTP Token secret key) |
Postmark offers two credential approaches. The simpler method uses your Server API Token as both username and password; messages route to the default transactional stream. For explicit stream control (required for broadcast emails), generate an SMTP Token under the relevant Message Stream; the access key is the username, the secret key the password. The SMTP Token is shown once at generation. Store it immediately.
For broadcast email via SMTP with an API Token, add the header X-PM-MESSAGE-STREAM: broadcast (or your custom stream ID). WordPress mailer plugins that don’t support custom headers should use the SMTP Token method instead.
Broadcast streams use a dedicated hostname: smtp-broadcasts.postmarkapp.com. Use it when connecting a stream-specific SMTP Token for marketing sends.
DNS authentication
Postmark requires domain verification before sending production email. Two records:
DKIM – A TXT record. The hostname and value are generated per-domain in Postmark’s Sender Signatures settings. Verification completes within 48 hours; a manual verify button expedites it.
Return-Path (CNAME) – Hostname pm_bounces pointing to pm.mtasv.net. This enables SPF alignment for bounce processing. Same 48-hour propagation window.
Both records coexist safely with existing DNS; adding them does not interfere with mail already flowing through other providers. After adding both, verify with swaks that messages authenticate correctly before switching production traffic.
DMARC is not Postmark-specific but is recommended (and required by Gmail/Yahoo for senders exceeding 5,000 daily messages). Start with p=none for monitoring. Postmark publishes a
detailed DMARC guide.
Pricing
| Plan | Price | Volume | Overage | Key differences |
|---|---|---|---|---|
| Free | $0 | 100 emails/mo | None allowed | Testing only. No production use. |
| Basic | $15/mo | 10,000 emails/mo | $1.80/1K | 5 domains. 45-day retention. REST API + SMTP. |
| Pro | $16.50/mo | 10,000 emails/mo | $1.30/1K | 10 domains. Inbound email. 7-365 day retention. |
| Platform | $18/mo | 10,000 emails/mo | $1.20/1K | Unlimited domains. Unlimited users. |
All paid plans start at the same 10,000-email base. The distinction is features and overage rate, not volume tier. Unused emails do not roll over.
The pricing model is unusual in this category. Most competitors (Mailgun, Brevo, Mailjet) sell volume tiers: you pick a plan based on expected send volume. Postmark sells a base volume with per-message overage, which means you never pay for a tier you don’t fully use but you pay slightly more per excess message. For WordPress sites with predictable volume under 10,000/month, overage pricing costs less than buying the next tier up on a volume-based provider. For high-volume senders approaching 50K+ monthly, the overage charges compound and volume-tier pricing from Mailgun ($35/month for 50,000 on Foundation) becomes significantly cheaper.
Compared to direct competitors at the 10,000 email tier: Postmark Basic is $15/month, Mailgun Basic is $15/month, SMTP2GO Starter is $10/month, and Mailjet Essential is $17/month. SMTP2GO is cheapest; Postmark and Mailgun are equivalent on sticker price but Postmark’s overage rate ($1.80/1K on Basic) is higher than Mailgun’s ($1.10/1K on Scale, though Mailgun Basic matches at $1.80/1K).
Message Streams
Postmark’s distinguishing architectural decision: transactional and broadcast email run on separate infrastructure by default. Each message stream has its own sending reputation, suppression list, and tracking; transactional and broadcast traffic never intersect, including IP ranges. A poorly-performing marketing campaign cannot drag down your transactional deliverability.
This matters for WordPress sites that send both types, such as WooCommerce order confirmations alongside newsletter campaigns. The separation is enforced: you cannot send broadcast content through a transactional stream. Each server supports up to 10 streams. For sites that only send transactional email (contact form notifications, password resets, plugin alerts), this is invisible; the default stream handles everything.
The trade-off: configuration is slightly more complex than single-stream providers. Each stream needs its own SMTP credentials or API token routing. WordPress mailer plugins connect to one stream; a separate tool (or a second plugin instance) handles broadcast. Sites wanting a single-provider, single-config solution for both types may prefer Brevo or Mailjet.
WordPress integration
Three paths:
Postmark plugin – The
official Postmark WordPress plugin (now branded “ActiveCampaign Postmark for WordPress”) connects via API. Handles transactional email from WordPress core, plugins, and WooCommerce. Published by ActiveCampaign’s team, though last updated in late 2024 and flagged on wp.org as untested with recent WordPress versions. Does not support broadcast streams.
WP Mail SMTP – WP Mail SMTP includes a native Postmark integration (API-based). Select Postmark as the mailer, paste the Server API Token. Adds email logging, deliverability monitoring, and smart routing if you use WP Mail SMTP’s other features. Actively maintained and tested with current WordPress.
FluentSMTP – FluentSMTP supports Postmark via API connection. Free, open-source, no upselling. The leaner choice if you want Postmark connectivity without WP Mail SMTP’s broader feature set. Also actively maintained.
All three methods use Postmark’s API rather than SMTP relay, which means they bypass any hosting-level SMTP restrictions. For SMTP-only configurations (enterprise policies that prohibit API connections, or plugins without API support), use the SMTP settings above with any generic WordPress SMTP plugin.
The verdict
Postmark is the right transactional email service for the majority of WordPress sites sending under 100,000 emails per month. Its stream separation, predictable pricing, and clean API make it the safest default when email must arrive. nanoPost recommends it as the starting point for any WordPress operator choosing a relay service.
It is not the cheapest option; SMTP2GO undercuts it at every volume tier with equivalent reliability. It is not the most flexible; Brevo and Mailjet handle transactional and marketing in a single integration. It is not the best at scale; Mailgun and SES win on per-message cost above 50K/month. But for the typical WordPress site (a business sending order confirmations, form submissions, and password resets, needing them to arrive in the inbox every time), Postmark is where the category defaults.

