Category: Deliverability & Infrastructure

  • How to set up Amazon SES for sending your newsletter — a complete step-by-step guide

    How to set up Amazon SES for sending your newsletter — a complete step-by-step guide

    Amazon SES (Simple Email Service) is the cheapest reliable way to send a newsletter at scale. Ten cents per thousand emails. No subscription, no per-contact pricing. Big publishers run their entire mailing on it — Substack, Beehiiv, Mailchimp, Resend, Postmark — all of them sit on top of SES or similar AWS infrastructure underneath.

    The trade-off: you set it up yourself. AWS doesn’t hand-hold. This guide walks every step end-to-end so you don’t get stuck on the parts that catch most operators (DNS records, sandbox approval, bounce handling). Plan on 30–45 minutes the first time you do this.

    Before you start

    • A domain you own (e.g. yourname.com). You’ll send from hello@yourname.com or similar. SES verifies the entire domain, not individual email addresses, so this is the right approach for a newsletter.
    • Access to your domain’s DNS — wherever you registered the domain (Namecheap, GoDaddy, Cloudflare, Route 53). You’ll add 4–5 records.
    • An AWS account. Free to create. AWS asks for a credit card but you won’t be charged unless you send mail.
    • 10 minutes patience for DNS propagation between steps.

    Step 1 — Sign in to AWS and open SES

    Go to aws.amazon.com/console and sign in (or create an account — pick “Personal” or “Business”, give them a card, you’re done).

    Once you’re in the AWS Console, type “SES” in the top search bar and click Amazon Simple Email Service. You’ll land on the SES home page.

    Step 2 — Pick your region

    This matters. SES is region-scoped — settings you make in one region don’t exist in another. Top right of the console there’s a region picker (it’ll say something like “N. Virginia” or “Oregon”).

    Pick the region closest to most of your subscribers. For a US audience: us-east-1 (N. Virginia) or us-west-2 (Oregon). For Europe: eu-west-1 (Ireland) or eu-central-1 (Frankfurt). The region affects deliverability latency but only marginally. Pick one and stick with it — moving later means re-verifying your domain.

    Step 3 — Verify your sending domain

    In the left sidebar of SES, click Verified identities, then Create identity.

    • Identity type: Domain (not Email address — domain verification covers every address on the domain).
    • Domain: enter your domain (e.g. yourname.com, no www, no https://).
    • Tick Use a custom MAIL FROM domain and enter a subdomain like mail.yourname.com. This is what shows up in bounce-handling headers — using your own MAIL FROM domain dramatically improves deliverability.
    • Under Advanced DKIM settings: leave Easy DKIM selected, RSA_2048_BIT. Tick Publish DNS records to Route 53 only if your DNS lives in Route 53; otherwise leave unticked.
    • Click Create identity.

    SES gives you a screen with DNS records to add. Keep this tab open — you’ll need it in the next step.

    Step 4 — Add the DNS records

    You’ll add four sets of DNS records. Log into your DNS host (Namecheap, GoDaddy, Cloudflare, etc.) in a separate tab.

    4a — DKIM records (3 CNAMEs). SES gives you three CNAME records that look like abc123._domainkey.yourname.com pointing at abc123.dkim.amazonses.com. Add all three exactly as shown. These prove emails you send are actually from you.

    4b — MAIL FROM records (2 records). One MX record on the subdomain you chose (mail.yourname.com) pointing at feedback-smtp.[region].amazonses.com with priority 10, and one TXT record on the same subdomain with value "v=spf1 include:amazonses.com ~all".

    4c — SPF on the root domain. Add (or update) a TXT record on yourname.com with value "v=spf1 include:amazonses.com ~all". If you already have an SPF record, don’t add a second one — edit the existing one to include include:amazonses.com before the closing ~all.

    4d — DMARC. This isn’t required by SES but Gmail and Yahoo now require it for bulk senders (5,000+/day). Add a TXT record on _dmarc.yourname.com with value "v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@yourname.com; pct=100; adkim=s; aspf=r;". Replace the email address with one you check.

    Wait 5–10 minutes, then back in the SES tab refresh the Verified identities page. The domain should flip to Verified with DKIM Successful. If it doesn’t after 30 minutes, your DNS records are wrong — open them in your DNS host and compare character-by-character to what SES shows.

    Step 5 — Request production access (leave the sandbox)

    By default, every new SES account is in sandbox mode: 200 emails per day, and you can only send to verified email addresses. That’s useless for a newsletter.

    In the SES console sidebar, click Account dashboard. You’ll see a banner saying you’re in the sandbox. Click Request production access (or Get set up).

    The form asks why you want to send mail. Answer honestly and specifically — vague applications get rejected. Good template:

    Mail type: Marketing

    Website URL: https://yourname.com

    Use case description: “I run a newsletter at yourname.com. Subscribers sign up via a double-opt-in form on the website and confirm via a verification email. They receive a weekly newsletter on [your topic]. Unsubscribes are honoured immediately via one-click unsubscribe headers (RFC 8058) and a footer link. I will monitor bounces and complaints via SNS topics and remove problem addresses automatically. Expected initial volume: 1,000 emails/day, growing with the list.”

    Additional contacts: “I do not buy email lists. All addresses come from people who actively signed up on my website.”

    Submit. AWS typically approves within 24 hours, often within 2–4 hours. If they reject (usually for vague applications), reply with more specifics — they’ll re-review.

    Step 6 — Create SMTP credentials

    While you wait for production approval, set up the credentials your newsletter plugin will use to send.

    In the SES sidebar, click SMTP settings. You’ll see the SMTP endpoint for your region (e.g. email-smtp.us-east-1.amazonaws.com) and a port (use 587 with STARTTLS).

    Click Create SMTP credentials. AWS creates an IAM user behind the scenes that has permission to send mail through SES. Copy the SMTP username and password immediately — AWS shows them once and never again. Save them in a password manager.

    Step 7 — Set up bounce and complaint handling (SNS)

    This step is optional but strongly recommended. SES will email you about bounces and complaints by default, but for a real newsletter you want them processed automatically — bounces auto-removed from your list, complaints flagged for review.

    In the AWS Console, search SNS and open Simple Notification Service. Create two topics — one called ses-bounces, one called ses-complaints. Note the ARN (Amazon Resource Name) of each.

    Back in SES, open your verified domain identity, scroll to Notifications, and assign the SNS topics to Bounce and Complaint feedback. Save.

    Now you can subscribe an HTTPS endpoint (your WordPress site) to those topics to auto-process events. Most decent newsletter plugins have a webhook endpoint for this. If yours doesn’t, leave the SNS topics in place and check them manually weekly — better than nothing.

    Step 8 — Configure your newsletter plugin

    Open your newsletter plugin’s settings (in WordPress: Newsletter → Settings → Sender or Email Provider). Pick SMTP as the provider type and enter:

    • Host: email-smtp.[your-region].amazonaws.com
    • Port: 587
    • Encryption: TLS (also called STARTTLS)
    • Username: the SMTP username from Step 6
    • Password: the SMTP password from Step 6
    • From email: any address on your verified domain (e.g. hello@yourname.com)
    • From name: your newsletter’s name

    Save the settings.

    Step 9 — Send a test

    From the newsletter plugin, send a test email to your own address. If it arrives, you’re done. If it doesn’t:

    • Check the plugin’s send log for the error message.
    • If you see “535 Authentication failed”: SMTP credentials are wrong. Re-create in SES (Step 6) and re-paste.
    • If you see “Email address not verified”: you’re still in sandbox mode. Either wait for production approval, or verify your test recipient address in SES → Verified identities first.
    • If you see “Daily sending quota exceeded”: you’ve hit the 200/day sandbox limit. Same fix — wait for production approval.

    What it costs

    SES pricing is straightforward: $0.10 per 1,000 emails sent. That’s it. A 10,000-subscriber newsletter sending one weekly issue costs $4/month. Compare to ConvertKit at $79/month for the same list, or Mailchimp at $100+. For pure deliverability infrastructure, nothing beats SES on price.

    If you’re hosting your WordPress site on EC2, you also get 62,000 emails/month free from SES — only when sent from an EC2 instance. Most operators won’t hit this.

    Common gotchas

    Sandbox limits are real. Don’t announce your launch before production access is approved. Apply the day you set SES up.

    DNS propagation is slow. If your records look right but the domain won’t verify, give it 30 minutes. Cloudflare propagates in 1–2 minutes; Namecheap can take 30+.

    Don’t reuse the same SPF record. If you have one already (most domains do), edit it to include amazonses.com — don’t add a second TXT record. Multiple SPF records on the same domain break email auth entirely.

    Watch your bounce rate. SES will throttle or suspend you if your bounce rate exceeds 5% or complaint rate exceeds 0.1%. Process bounces. Remove invalid addresses.

    Warm up the IP. If you’re going from 0 to 50,000 sends overnight, AWS will throttle you anyway. Ramp gradually over 2–4 weeks if possible.

    Once you’re up

    That’s the whole setup. From here on, SES is the cheapest, most reliable workhorse in your stack — your newsletter plugin handles the editorial workflow, SES handles the sending, AWS bills you ten cents per thousand emails sent.

    If you’re running One Two Three Send on WordPress, the SMTP provider option above is built in — paste the SES credentials into Newsletter → Settings → Email Provider and you’re sending. Same plugin, same workflow, infrastructure that costs $4/month instead of $100.

    Subscribe to One Two Three Send for more no-nonsense guides on the infrastructure behind running a profitable newsletter.

    Some links in this post are affiliate links — we earn a small commission if you sign up through them, at no cost to you. We only recommend tools we actually use.

  • What MailerLite is, and how to use it with the One Two Three Send plugin

    What MailerLite is, and how to use it with the One Two Three Send plugin

    For most operators starting a newsletter in 2026, the question isn’t which email platform to pick — it’s which platform won’t bankrupt me before I have any readers. MailerLite‘s answer is the most generous free tier in the industry: 1,000 subscribers and 12,000 emails per month, free, no time limit, no credit card needed. That changes the math for anyone in the first year of a newsletter where revenue is zero and you don’t yet know if the project will work.

    This post is the operator’s guide to MailerLite: what it actually is, the cost math past the free tier, the step-by-step setup with the One Two Three Send plugin, and the honest comparison vs Mailchimp, Beehiiv, ConvertKit, and Substack.

    What MailerLite is, in one paragraph

    MailerLite is a Lithuanian-founded (now GoDaddy-owned) email marketing platform that’s been building toward “the simplest professional email tool” since 2010. It’s the closest thing the industry has to “Mailchimp without the Mailchimp pricing surprises” — a clean drag-and-drop editor, automations, landing pages, signup forms, A/B testing, and an API/SMTP interface that integrates with anything. About 1.5 million businesses use it. The deliverability reputation is solid (not as obsessive as Postmark but materially better than Mailchimp on the same lists in our testing). The killer feature for new operators is a free tier that actually lets you run a newsletter at scale, not a 14-day trial that converts you to $30/month before your first subscriber arrives.

    The case for MailerLite

    Three reasons it shows up in operator stacks more than most people realize:

    1. The free tier is real. Most “free” email platforms are time-limited (14 days), volume-limited (300 emails total), or feature-crippled to push you to upgrade. MailerLite’s free tier gives you 1,000 subscribers and 12,000 sends per month with the full editor, automation, and landing-page tools. The only feature gate is removal of the MailerLite footer — which costs $9/month if you care, $0 if you don’t.

    2. The editor doesn’t fight you. Mailchimp’s editor was the industry standard until about 2018, when they started progressively breaking it for power users. MailerLite kept the editor simple. Drag a block in, type in it, save. Operators coming from Substack (“just give me a textbox”) tolerate it. Operators coming from Mailchimp (“why does this require six clicks?”) love it.

    3. Automations and landing pages are bundled. Welcome sequences, abandoned-form recovery, paid-tier upgrade flows — all built in, no Zapier glue, no third-party email-automation tool layered on top. Same with landing pages: you can build a signup form + thank-you page + welcome email in 20 minutes without leaving the platform.

    The cost reality, with real numbers

    The pricing is structured by subscriber count (not email volume), which is the right unit for newsletter operators.

    SubscribersMailerLiteMailchimp StandardConvertKit CreatorSubstack
    0–1,000$0 (free)$20$1510% of revenue
    2,500$25$45$2910% of revenue
    5,000$39$75$4910% of revenue
    15,000$99$200$14910% of revenue
    50,000$289$385+$37910% of revenue

    For a paid newsletter at $5/month with 5,000 subscribers (50% paid = $12,500/month revenue), Substack takes $1,250/month. MailerLite plus a $20/month Postmark or SES bill takes $59 total. The break-even on switching off Substack to a self-hosted MailerLite + One Two Three Send stack is roughly 250 paid subscribers — at that point the platform fees you’re saving cover the entire stack with money to spare.

    Setup with the One Two Three Send plugin

    The pro plugin has a built-in MailerLite provider — pick it from the dropdown and you’re 90% there. About 10 minutes if you already have a domain.

    Step 1 — Sign up and verify your domain

    Sign up at mailerlite.com. You’ll be asked some onboarding questions about your business; pick “Newsletter” or “Content creator” — answers don’t affect anything functional. Once in, go to Account → Domains and add the domain you want to send from. MailerLite gives you four DNS records to add: SPF, DKIM (two records), and a Return-Path CNAME. Add them all at your DNS provider, click Verify. Done within 10 minutes.

    Skipping any of these — especially the DKIM pair — costs you 5–10% deliverability at Gmail. Don’t skip them.

    Step 2 — Get your API key

    From the MailerLite console, go to Integrations → MailerLite API. Click “Generate new token.” Name it “OTTS plugin.” Copy the token — you’ll only see it once.

    Step 3 — Configure the plugin

    In your WordPress admin, go to Newsletter → Settings → Provider. Pick MailerLite from the dropdown. Paste the API key. Click Save.

    If the pro plugin isn’t installed (you’re on the free One Two Three Send only), the MailerLite option won’t appear — install the pro companion plugin first (it’s free if you’re on the One Two Three Send newsletter list).

    Step 4 — Map your subscriber list

    One Two Three Send keeps subscribers in WordPress (in the otts_subscribers table). MailerLite keeps them in their own subscriber database. The plugin’s MailerLite provider syncs WP subscribers into a MailerLite group of your choice when they sign up. In Settings, pick the MailerLite group ID you want new signups to join (create one in MailerLite first — usually just “Newsletter Subscribers”). Existing subscribers get one-way-synced on the next save.

    Step 5 — Send your first test

    From Newsletter → New Newsletter, write a quick test or generate a draft, hit Send Test to your admin address. The plugin pushes it to MailerLite’s API; MailerLite delivers. Activity shows up in MailerLite’s Reports tab within 30 seconds. Click into the campaign to see the open rate, click rate, and unsubscribe count — all the things MailerLite does well that you’d otherwise need a separate analytics tool for.

    How MailerLite compares to the alternatives

    vs Mailchimp — Mailchimp is what people pick when they don’t know what else to pick. Pricing is roughly 2× MailerLite at every tier above the free plan. Deliverability has slipped over the last 5 years (independent benchmarks consistently put Mailchimp behind both MailerLite and ConvertKit at Gmail). The editor is bigger and more complicated; the automations are slightly more powerful. If you’re already on Mailchimp and don’t have time to migrate, fine. If you’re starting fresh, MailerLite is the better default.

    vs BeehiivBeehiiv is the modern Substack competitor, built specifically for paid newsletters with built-in monetization, referral programs, and a publisher network. The free tier (up to 2,500 subscribers) is generous. Beehiiv is the right pick if you want the publishing platform AND the email engine in one product. MailerLite is the right pick if you want a sending engine and you’re publishing on WordPress.

    vs ConvertKit (now Kit) — Kit is the creator-economy platform of choice — built for course creators, membership site operators, and people who sell digital products through their list. The tagging and segmentation are best-in-class. Pricing is comparable to MailerLite at the low end, slightly more expensive past 5K subscribers. If your business is “newsletter that sells courses,” Kit. If your business is “newsletter,” MailerLite.

    vs Substack — Substack is the easiest path to a paid newsletter at zero technical cost. They take 10% of revenue forever. The math for switching off Substack to MailerLite + WordPress + One Two Three Send: at 250 paid subscribers ($5/month each = $1,250/month revenue), you’re paying Substack $125/month and MailerLite + Postmark + hosting would cost $40 total. The catch is the migration friction — getting your subscribers off Substack onto your own list is the part most operators put off until they’ve already overpaid by years.

    vs Brevo (formerly Sendinblue)Brevo‘s free tier is volume-based (300 emails/day) instead of subscriber-based, which makes it good for transactional but bad for newsletter sends to a 1,000-subscriber list. Stay on MailerLite for newsletters.

    Pitfalls operators hit (in the order they hit them)

    1. Importing a “stale” list. MailerLite’s compliance team reviews your first import. If you upload a list that’s been sitting in a spreadsheet for two years, hasn’t been emailed in months, or includes addresses you got from a giveaway, expect MailerLite to suspend the account pending review. Send to the freshest, most-engaged segment first to establish reputation, then add the older addresses gradually. This isn’t unique to MailerLite — every legitimate provider does this — but they’re stricter than most.

    2. The 5,000-character limit on automation emails. Newsletter content rarely runs into this, but operators who paste long-form essays into welcome-email automations sometimes hit it. Split into multiple emails or reduce the length.

    3. Forgetting to set up DKIM properly. The DKIM records are TWO records (most providers use one). If you only added one, your DKIM signing is broken and Gmail will mark you as Unauthenticated. Check both are showing green in MailerLite’s Domains section before sending real campaigns.

    4. The “engaged subscribers only” reflex. MailerLite has a feature called “send only to engaged subscribers” (people who opened in the last 90 days). Toggle that on to protect deliverability, but don’t ALSO be aggressively pruning your list — you’ll lose subscribers who just don’t open every send but would resubscribe given a re-engagement nudge. Engagement send + occasional re-engagement campaign is the right combo, not “only ever email the openers.”

    5. Form duplicate-handling. If a subscriber fills out your One Two Three Send form AND ALSO a MailerLite-hosted form (e.g. on a landing page), you can end up with the same address counted twice. The plugin de-dupes on the WordPress side; MailerLite de-dupes on theirs. Keep signups going through one path (your WP form, synced via the plugin) and skip MailerLite’s standalone forms unless you have a specific reason.

    6. The ‘paid plan starts immediately’ surprise. If you upgrade from Free to a paid tier, you’re billed for that month in full immediately, prorated only on subsequent months. Time the upgrade for the first day of a calendar month if you can.

    Long-term maintenance

    Less than running your own SES, more than pure Substack.

    Weekly: glance at the Reports tab. Open rates trending down means a deliverability problem; click rates trending down means a content problem. Both are fixable, but only if you notice.

    Monthly: prune subscribers who haven’t opened in 180 days. MailerLite has a built-in “Inactive subscribers” segment — review it, send a re-engagement campaign, then suppress the people who still don’t engage. Inbox providers downgrade your reputation when you keep mailing to inactive addresses.

    Quarterly: review your DNS records. Once a year, a domain registrar will quietly drop a record during a settings reshuffle and nobody will notice for two months. The MailerLite Domains tab shows live verification status; check it.

    Annually: rotate your API token. Generate a new one in MailerLite, paste it into One Two Three Send, deactivate the old one a week later. Ten minutes of maintenance for a meaningful security win.

    When MailerLite is the wrong choice

    If you’re sending more than 100,000 emails a day from a single account, MailerLite’s per-subscriber pricing stops being competitive. At that volume, an SES + custom dashboard setup costs roughly half. Consider migrating only when you’re consistently above that threshold for 3+ months.

    If your business depends on advanced segmentation across dozens of tags, custom fields, and complex automation flows (think course-creator operations selling 10+ products into the same list), Kit or HubSpot is a better fit. MailerLite handles 80% of segmentation needs cleanly; the last 20% is where you outgrow it.

    If your audience is concentrated in compliance-heavy industries (financial services, healthcare, legal) where you need detailed audit trails for every send, MailerLite’s audit logging is adequate but not specialized. Higher-end ESPs aimed at enterprise compliance (Iterable, Klaviyo’s Enterprise tier) are worth the extra cost.

    For everyone else: MailerLite paired with One Two Three Send is the most cost-effective newsletter stack available to operators in 2026 — free until you cross 1,000 subscribers, predictably-priced after that, and meaningfully better at deliverability than the platform most operators default to. The only reason not to start here is inertia.

    Some links in this post are affiliate links — we earn a small commission if you sign up through them, at no cost to you. We only recommend tools we actually use.

  • What Postmark is, and how to use it with the One Two Three Send plugin

    What Postmark is, and how to use it with the One Two Three Send plugin

    Most email-sending advice for operators is some version of “use Amazon SES if you’re cheap, use Resend if you want a nice dashboard, use Mailchimp if you don’t want to think about it.” That advice is fine until you actually look at the inbox-placement numbers — and then you find that one provider keeps quietly outperforming everyone else for newsletter sending: Postmark.

    If your last three newsletters landed in Promotions or Spam at Gmail, the cheapest fix isn’t a deliverability consultant. It’s switching to Postmark. This post is the operator’s guide: what Postmark actually is, the cost math at newsletter scale, the step-by-step setup with the One Two Three Send plugin, and the honest tradeoffs vs SES and Resend.

    What Postmark is, in one paragraph

    Postmark is a transactional and broadcast email service operated by Wildbit (acquired by ActiveCampaign in 2022, but run as a separate product). It’s been around since 2010 and is known in the developer community for one thing: deliverability. Where most email providers let you send anything and learn about reputation problems via your bounce rate, Postmark aggressively splits transactional traffic from marketing/broadcast traffic onto separate IP pools, monitors content patterns proactively, and has the most-paranoid abuse team in the industry. The result: their inbox placement is consistently 5–15% higher than the median provider on the same lists. That sounds small until you calculate the revenue lift on a list of 10,000 paid subscribers.

    Why operators pick Postmark over SES or Resend

    Three reasons that show up after a few months of running:

    1. Inbox placement. Postmark’s Send Score and email Insights tools show you, per send, how Gmail/Outlook/Yahoo are categorizing your mail. SES gives you “delivered” — meaning the recipient’s server accepted the message. That doesn’t tell you whether it landed in the Inbox or Promotions or Spam. Postmark tells you.

    2. Bounce + complaint dashboard, free, no SNS or Lambda. SES requires you to wire up SNS topics → Lambda → your database → suppression list before you can see why a domain is bouncing. Postmark gives you that view in their console out of the box. For an operator who values shipping over plumbing, it’s the difference between a one-hour setup and a one-day setup.

    3. Strict separation of broadcast and transactional streams. When you accidentally send a marketing email through your transactional stream — every newsletter operator does this at least once — Postmark blocks it before it harms your transactional reputation. SES has nothing equivalent. The savings from not losing your password-reset deliverability after one rogue announcement are real.

    The cost reality

    Postmark is more expensive than SES, less expensive than Mailchimp at scale, and roughly even with Resend.

    Subscribers (sending 5×/week)Emails/monthPostmarkSESResend retail
    1,00022,000$15$2.20$20
    5,000110,000$80$11$50
    15,000330,000$200$33$200
    50,0001,100,000$700$110$1,000+

    The honest reading: Postmark is roughly 7× SES at any volume. That’s the price of the deliverability premium and the dashboard. For lists under ~25,000 paid subscribers, it’s the right tradeoff almost every time. Above that, you’ll start considering SES for cost reasons and accepting the operational overhead.

    Postmark also has a free tier — 100 emails/month, no time limit — that’s enough to set everything up, send yourself test emails, and verify the integration with One Two Three Send before you put a card in.

    Setup with the One Two Three Send plugin

    Eight minutes if you have a domain in hand. The plugin uses Postmark’s SMTP interface (no custom Postmark provider needed — the standard SMTP option in OTTS handles it perfectly).

    Step 1 — Sign up and create a server

    Go to postmarkapp.com and sign up. Once you’re in, click Servers → Create Server. Name it after your newsletter (“Love Ireland”, “OTTS Newsletter”, etc.). Pick the “Broadcast” server type — this is critical. Postmark separates transactional and broadcast traffic onto different IP pools and reputation profiles, and broadcast is what newsletters need. Don’t pick the default Transactional unless you also want to use Postmark for password resets and order confirmations on the same site (in which case create two servers, one of each type).

    Step 2 — Verify your sending domain

    From the new server, go to Sender SignaturesAdd Domain. Enter your domain (e.g. yourbrand.com). Postmark gives you three DNS records to add:

    • One TXT record for SPF (the value includes spf.mtasv.net)
    • One TXT record for DKIM (the long signing key)
    • One CNAME record for the Return-Path domain

    Add all three to your DNS, click “Verify.” Done within 10 minutes. Skipping any of these — especially DKIM — is the difference between landing in Promotions and landing in Inbox at Gmail.

    Step 3 — Get your Server API token

    From the server’s overview page, click API Tokens. Copy the Server token. This token is both your SMTP username AND your SMTP password (Postmark uses the same value for both — unusual but documented).

    Step 4 — Configure One Two Three Send

    In your WordPress admin, go to Newsletter → Settings → Provider. Pick SMTP. Enter:

    • SMTP Host: smtp.postmarkapp.com
    • Port: 587
    • Encryption: STARTTLS (the default)
    • Username: [your Server token]
    • Password: [the same Server token]
    • From Email: any address at your verified domain (e.g. hello@yourbrand.com)
    • From Name: your newsletter’s name

    Click Test connection. The plugin will fire a test email to your admin address. If it lands, you’re done.

    Step 5 — Send your first newsletter through Postmark

    Generate a draft, hit Send. Within 30 seconds, the message shows up in Postmark’s Activity log with its delivery state. Click into any send to see the message metadata, bounce/complaint state if any, and (within an hour) the recipient’s email-client breakdown.

    Send a test to your own Gmail and click Show original. You should see SPF: PASS, DKIM: PASS, DMARC: PASS (the last one assumes you have a DMARC TXT record on your domain — if you don’t, see Pitfall #2 below). All three passing is the bar. Anything less and your inbox placement won’t be what Postmark is capable of giving you.

    Comparison vs the obvious alternatives

    vs Amazon SES — SES is roughly 1/7 the price at every scale. It’s the right choice when monthly volume crosses ~250,000 emails AND you have someone on the team who can wire up SNS for bounces, run CloudWatch dashboards, and warm up dedicated IPs. For everyone smaller, the time you spend on SES infrastructure costs more than Postmark’s bill. We have a separate post on running SES for the operators who are at that scale.

    vs Resend — Resend is the modern competitor: nicer API, comparable deliverability for newsletters, slightly cheaper at the lower tiers, similar at the higher ones. Postmark is older, more conservative, and has a meaningful inbox-placement edge specifically at Gmail and Outlook. If you’re building a SaaS app and want clean developer ergonomics, Resend wins. If you’re running a newsletter and the only metric you care about is open rate, Postmark wins.

    vs Mailgun — Roughly comparable price at low volume, cheaper at high volume, slightly worse deliverability in our testing. Mailgun’s main advantage is they accept high-volume sends without a manual review process Postmark sometimes does on accounts approaching 1M/month. If you’re going from 100K → 1M and don’t want to negotiate, Mailgun is the easier path.

    vs Mailchimp / ConvertKit / Beehiiv — Different category. These are mailing platforms (list, editor, analytics, automation, signup forms). Postmark is a sending engine. You wouldn’t compare a hosting provider to Squarespace; same here.

    vs SendGrid — SendGrid is fine. The pricing tiers are less predictable above 100K, and the deliverability has slipped in independent benchmarks over the last 3 years. Use Postmark instead unless you’ve got a SendGrid contract you can’t get out of.

    Pitfalls operators hit (in the order they hit them)

    1. Picking the wrong server type. If you accidentally created a “Transactional” server and start sending newsletters through it, Postmark’s abuse team will flag the account within a week. Create a Broadcast server. If you created the wrong one, delete it (after migration) and start fresh — don’t try to flip the type.

    2. No DMARC record. Gmail and Yahoo’s 2024 sender requirements mandate DMARC for any domain sending more than 5,000 emails/day to their users. The minimum acceptable record is v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com. Without it, Postmark’s deliverability advantage evaporates because Gmail/Yahoo discount your sender reputation. Add the TXT record before you send to a real subscriber.

    3. Sending from a free email address. If your From Email is yourname@gmail.com Postmark will refuse to send. The From must be at a domain you’ve verified in Postmark. Most operators trip over this on the first test send and lose 15 minutes wondering why nothing fires.

    4. Suppression list surprises. Postmark’s automatic suppressions are aggressive — they’ll suppress anyone who marks one email as spam, anyone whose domain bounces hard, anyone who clicks unsubscribe via Postmark’s unsubscribe handler. This is good for reputation but means you need to be intentional about list re-engagement. The Suppressions tab in Postmark’s console shows the full list; you can manually remove someone if they email you to say they want back on.

    5. The 10MB attachment limit. Postmark won’t accept emails over 10MB total (HTML + inline images + attachments). Most newsletters are under 200KB so this never matters — except when someone uploads a 4K-resolution hero image and the rendered email balloons past the limit. Compress images to under 1MB before they go into the email body.

    6. Approval delay on first 1M-email month. When you cross approximately 1 million emails in a billing month, Postmark’s account review team will email you to verify you’re a legitimate operator. Reply within 48 hours with proof of the list source (signup form URL, growth pattern). Don’t ignore the email — they’ll throttle the account if you do.

    Long-term maintenance

    Less than SES, more than a pure SaaS like Beehiiv.

    Daily/weekly: nothing. Postmark is set-and-forget for the first 6 months. The activity log emails are a useful occasional read.

    Monthly: review the Suppressions tab. Look for patterns — if a corporate domain is on there 50 times, you’ve probably been blocked at the SMTP level by their gateway and need to get IT-whitelisted. Look at bounce-rate trend in the dashboard; if it’s creeping past 3%, you have a list-quality problem worth fixing.

    Quarterly: review your DMARC reports (the rua address gets weekly XML aggregates from Gmail/Yahoo/Microsoft). Tools like Postmark’s DMARC monitor (free) parse these into a readable dashboard.

    Annually: rotate your Server token. Settings → API Tokens → “Generate new token”, paste the new one into One Two Three Send’s SMTP settings, deactivate the old one a week later.

    When Postmark is the wrong choice

    If you’re sending fewer than 5,000 emails a month, Postmark’s $15/month minimum is overkill and you should stay on Resend or Mailchimp’s free tier until volume justifies the spend.

    If you’re sending more than ~500,000 emails a month and have technical capacity, Amazon SES becomes meaningfully cheaper. The break-even for “the time SES costs me to set up” vs “the dollars Postmark saves me” lands somewhere around the 200K–300K/month volume mark for most operator teams.

    If your audience is concentrated in countries where Postmark’s IP pools have weak reputation (a few specific Asian and African corporate-email gateways are the usual culprits), test before committing. Postmark’s free tier of 100 emails/month is enough to verify your top-10 corporate domains accept mail from them before you migrate.

    For everyone else: Postmark is the boringly-best transactional and broadcast email provider available to newsletter operators in 2026. Pair it with One Two Three Send and you have an inbox-placement-optimized newsletter stack that takes 8 minutes to set up and runs without intervention for 6 months at a time. That’s what infrastructure is supposed to do.

    Some links in this post are affiliate links — we earn a small commission if you sign up through them, at no cost to you. We only recommend tools we actually use.

  • You’re segmenting wrong — and it’s killing your inbox placement

    You’re segmenting wrong — and it’s killing your inbox placement

    Ask any email marketer about segmentation and they’ll tell you it’s about sending the right message to the right person. Better targeting, higher engagement, more conversions. All true.

    What they won’t tell you—because most don’t realize it—is that how you segment can directly damage your deliverability, sometimes irreparably.

    The problem isn’t segmentation itself. It’s that most operators treat it purely as a content exercise when it’s actually an infrastructure decision with serious technical consequences.

    The engagement trap nobody talks about

    Here’s the pattern: you create a segment for your most engaged subscribers. Makes sense. You want to reward the people who actually open and click. Maybe you send them early access, exclusive content, or your best offers.

    Meanwhile, your less-engaged segment gets… what? Re-engagement campaigns? Less frequent sends? Or worse, they stay on your main list getting everything, slowly tuning out.

    The damage happens quietly. Each send to unengaged subscribers teaches mailbox providers that your mail isn’t wanted. Your sender reputation isn’t calculated per-segment in your ESP—it’s calculated by domain and IP address. That disengaged segment you’re still mailing? They’re poisoning deliverability for everyone, including your best subscribers.

    Most operators discover this backwards. Their open rates drop across all segments. They check their deliverability, find themselves in the spam folder, and can’t figure out why their “good” emails aren’t landing—even to people who’ve opened every message for months.

    Volume patterns matter more than you think

    Mailbox providers are pattern-matching machines. They’re looking at volume, frequency, and consistency as signals of legitimacy.

    When you create segments and start sending different volumes to different groups, you create volatility. Send 50,000 emails on Monday to your full list, then 5,000 on Wednesday to a segment, then 30,000 on Friday to a different slice—you’ve just told Gmail and Outlook that your sending behavior is erratic.

    Erratic senders get scrutinised. Consistent senders get trusted.

    This doesn’t mean you can’t segment. It means you need to think about segment architecture, not just segment criteria. If you’re going to split your list, plan for predictable send volumes. If you’re testing a new segment strategy, warm it up like you would a new domain. Don’t just flip a switch in your ESP and hope for the best.

    The suppression problem hiding in plain sight

    Most segmentation advice tells you to suppress unengaged users. Stop sending to people who haven’t opened in 90 days, 180 days, whatever your threshold is.

    Sounds sensible. Except here’s what actually happens: you remove your least engaged subscribers, which increases your open rate percentage—but decreases your absolute engagement volume. If you were getting 10,000 opens from 100,000 sends, and you suppress 40,000 inactive subscribers, you might now get 8,000 opens from 60,000 sends. Your rate went from 10% to 13%. Your volume dropped 20%.

    Mailbox providers don’t care about your rate. They care about absolute signals. Fewer opens, fewer clicks, less forwarding, less time spent reading—that’s a negative trend, even if your internal dashboard shows green arrows.

    The fix isn’t to keep mailing dead addresses. It’s to understand that suppression is a last resort, not a first move. Re-engagement should come first. Frequency reduction should come second. List hygiene should be ongoing, not a quarterly purge. And when you do suppress, do it gradually so the volume change doesn’t trigger algorithmic red flags.

    What good segmentation actually looks like

    Good segmentation starts with a map. Not a Venn diagram of interests, but a sending architecture: how many segments, what volume each gets, how often, and how those volumes interact with your overall sender reputation.

    You should be able to answer: if this segment gets throttled or blocked, does it affect the others? If engagement drops in one segment, how quickly does it drag down the whole domain? If you scale one segment, do you have the IP reputation and infrastructure to support it?

    Most operators can’t answer these questions because they’ve bolted segmentation onto their programme without thinking about the plumbing underneath.

    Start small. Test one segment with consistent volume and frequency before you carve up your list into a dozen pieces. Monitor deliverability metrics—inbox placement, spam folder rate, domain reputation—not just engagement metrics. And if you’re running multiple brands or products from the same domain, for the love of inboxes, understand that they share a reputation.

    If you’re rethinking your segmentation strategy or just want to stay ahead of shifts like this, subscribe to One Two Three Send. We dig into the operator-level details that actually matter—no fluff, no beginner basics, just the things that break at scale.

    Segmentation isn’t wrong. But if you’re doing it without considering how mailbox providers see your sending behavior, you’re optimizing for the wrong scoreboard.