Skip to content
AI & Automation

Postmark vs Mailgun RFC 8058: 2 One-Click Paths 2026

Sep 6, 2026

Postmark vs Mailgun for RFC 8058 one-click unsubscribe is a header-and-stream decision, not a “which ESP is prettier” decision. RFC 8058 is the IETF standard that lets a mailbox show a one-click unsubscribe that POSTs to your URL. A footer link is not enough once you are a Gmail bulk sender.

A one-sentence definition: RFC 8058 one-click unsubscribe is the pair of email headers (List-Unsubscribe with an HTTPS URI and List-Unsubscribe-Post: List-Unsubscribe=One-Click) that lets Gmail and Yahoo unsubscribe a recipient with a single click.

Small businesses citing time-management as top challenge: 44% according to NFIB 2024 Small Business Economic Trends (2024). Owners who still hand-process unsubscribes are spending the same scarce time Gmail is trying to save their recipients.

TL;DR: Postmark auto-adds RFC 8058 headers on Broadcast streams and treats transactional streams as exempt. Mailgun inserts the headers when you enable its unsubscribe handling at domain or message level. Pick Postmark when you want streams split for you. Pick Mailgun when you already live in Mailgun and will turn the feature on. US Tech Automations does not send the mail; it can honor the POST.

RFC 8058 in one paragraph

RFC 8058 tells senders to advertise a one-click HTTPS POST, according to IETF RFC 8058 (2017). The mailbox POSTs List-Unsubscribe=One-Click to your URI. You have two days (Gmail/Yahoo: 48 hours) to drop the recipient. Mailto-only (RFC 2369) is not enough for the 2024 bulk-sender rules.

Mailgun’s explainer matches that header pair and the 48-hour honor window, according to Mailgun (2024). Yahoo’s Marcel Becker, quoted there, said implementing the UI unsubscribe reduced spam marks 30 to 40% in some cases. That is Yahoo’s reported range, not a guarantee for your domain.

The 5,000-message Gmail line

Gmail requires bulk senders who send more than 5,000 messages per day to personal Gmail accounts to support one-click unsubscribe on marketing and subscribed mail, according to Google (2024). Spam rates in Postmaster Tools must stay below 0.3%. SPF, DKIM, and DMARC are also in that bulk-sender set.

Gmail bulk-sender threshold: 5,000 messages/day according to Google (2024). Under that line, the headers are still a good idea. Over that line, they are a requirement for marketing streams.

Yahoo requires a functioning List-Unsubscribe and strongly recommends RFC 8058 POST. Palisade and others summarize the Google/Yahoo pair; use Google and RFC 8058 as the primary texts.

Postmark documents that it automatically adds RFC 8058 List-Unsubscribe-Post and List-Unsubscribe headers on Broadcast Message Stream mail, according to Postmark (2026). Transactional streams are not required to carry them; Postmark will pass headers through if you add them anyway.

Related SMB ops that are not this ESP choice: payroll processing automation, Google Business Profile checklist, Zoho CRM alternative, and Gusto/QuickBooks/ADP payroll.

Who this sender choice is for

This page is for a founder, marketer, or engineer at an SMB that sends receipts and a newsletter, already on Postmark or Mailgun (or choosing), and whose Gmail bulk status is close to or over 5,000/day. You already have a domain and DKIM.

Red flags: you send only password resets; you buy lists; you will not honor a POST within 48 hours. Skip both ESPs’ marketing streams if you should not be sending bulk mail at all.

How we scored Postmark vs Mailgun

We weighted RFC 8058 defaults, stream separation, suppression handling, and public price. We did not run a private inbox-placement lab.

Evaluation criterionWeight %Proof testDisqualifier
RFC 8058 headers by default251 Broadcast/marketing message shows both headersFooter link only
Stream / subdomain split20Marketing ≠ receiptsOne IP, mixed content
Suppression on POST20Recipient gone in ≤48 hoursPreference center extra click
API / webhooks15SubscriptionChange or Mailgun eventNo event, only a pixel
Public price10Published start 2026-09-06Enterprise-only card
Implementation10Hours, not a 6-week SICustom MIME shop

Header behavior, TCO, and orchestration numbers

Postmark’s published plans have long started around $15 for 10,000 emails; confirm the current card. Mailgun’s published plans vary by flex vs foundation; confirm the current card. USTA column is public self-serve fetched 2026-09-06.

CapabilityPostmarkMailgunUSTA Growth
Auto RFC 8058 on bulkYes (Broadcast)Yes when unsubscribe handling onNo
Transactional exemptYes (Transactional stream)You split domains/streamsn/a
Honor windowYou + Postmark suppressionsYou + Mailgun suppressionsHold / ticket
WebhookSubscriptionChangeunsubscribed eventsConsumes webhook
Published startConfirm (~$15/10k historical)Confirm (usage plans)$372/mo
Active flowsn/an/a5
API calls / flow / dayVendorVendor150
Run historyPlatformPlatform30 days
Human holdRarely neededRarely needed1 named list owner
Sends the email?YesYesNo
12-month planning rowPostmarkMailgunUSTA Growth
LicenseConfirm cardConfirm card$4,464
10k marketing msgs / moSee vendor cardSee vendor cardn/a
Extra for headersIncluded on BroadcastIncluded when enabledn/a
Team seatsAPIAPI5
System of record for the listYour app + ESPYour app + ESPNo

Postmark

Best fit: product teams that want transactional and broadcast split by stream, with RFC 8058 on Broadcast by default. Limitations: if you insist on managing your own unsubscribes, Postmark requires approval and you own compliance. Implementation: create a Broadcast stream, keep receipts on Transactional. Primary evidence: Postmark support article fetched 2026-09-06. Disqualifier: you need a full marketing-automation suite (journeys, templates-for-marketers) more than a message API.

Mailgun

Best fit: teams already on Mailgun who will enable unsubscribe handling at domain or message level so Mailgun inserts the headers. Limitations: if you self-manage MIME, you must add both headers, sign them with DKIM, and honor POST in 48 hours. Implementation: flip the setting; split promotional vs transactional subdomains. Primary evidence: Mailgun RFC 8058 post. Disqualifier: you wanted Postmark’s opinionated Broadcast default and you are not already in Mailgun.

After the POST lands

An SMB that sends 6,200 marketing messages a day to Gmail plus 900 receipts, with a 44% NFIB-style time crunch on the owner, still fails RFC 8058 when the POST hits an app that never drops the row. When Postmark fires SubscriptionChange, a proposed US Tech Automations recipe could suppress the address in the ESP, mark the CRM, and hold any POST that is not confirmed dropped within 6 hours for a named list owner. Prerequisites: Postmark (or Mailgun) webhook, CRM API, and a human who can purge. This is a configurable design, not a live customer result.

US Tech Automations would not be the sending domain. On agentic workflows it would consume SubscriptionChange, write suppressions, and hold. Growth at $372/mo, 5 flows, 150 API calls per flow per day is enough for honor-path routing.

When NOT to use US Tech Automations: if Postmark Broadcast or Mailgun unsubscribe handling already suppresses and your CRM already listens, stay there. If a Zapier, Make, or n8n scenario already handles the webhook with retries and a run history, keep it. Those tools can do error branches and audit evidence; you own idempotency (one drop per address), 48-hour honor, retention, and access control. A proposed US Tech Automations design adds a human hold when the CRM write fails.

Decision checklist

  • Do marketing messages include both RFC 8058 headers, DKIM-signed?

  • Is the POST honored in 48 hours without a second click?

  • Are receipts on a different stream or subdomain?

  • Is Postmaster spam rate under 0.3%?

  • If you leave the ESP, can you export suppressions?

Broadcast vs transactional streams in practice

Split streams before you argue Postmark vs Mailgun. Receipts, password resets, and shipping notices are transactional. Newsletters, launches, and “we miss you” mail are marketing. Mixing them on one subdomain is how a promo spam spike buries invoices.

Postmark’s model is explicit: Broadcast vs Transactional message streams. RFC 8058 belongs on Broadcast by default. Mailgun’s model is domain- or message-level unsubscribe handling plus your own subdomain split (marketing.example.com vs receipts.example.com). Both can be compliant. Only one will be if you never flip the switch.

Honor path, 48 hours:

  • Mailbox POSTs to your HTTPS URI with List-Unsubscribe=One-Click.

  • You drop the recipient from the marketing list. You do not require a second click.

  • You may show a confirmation page. You may not require a preference-center click to complete the drop.

  • You sync the ESP suppression and the CRM. If only the ESP drops, a later CRM export will re-add them.

Honor window: 48 hours is the Gmail/Yahoo honor path Mailgun’s explainer already summarized above. If your CRM job runs weekly, you are already late.

Postmaster spam ceiling: 0.3% is the Gmail bulk-sender line. One-click unsubscribe exists so people leave without stabbing spam. Yahoo’s quoted 30–40% spam-mark reduction is why the UI exists, not a promise for your domain.

Glossary:

  • RFC 8058: one-click List-Unsubscribe-Post.

  • RFC 2369: mailto List-Unsubscribe (not sufficient alone).

  • Broadcast stream: Postmark’s bulk stream with auto headers.

  • Suppression: the do-not-send list.

  • Bulk sender: >5,000/day to personal Gmail.

  • DKIM-signed headers: required so the mailbox trusts the POST URI.

Common mistakes: footer-only unsubscribes; putting one-click on password resets; self-managing MIME without DKIM on the unsubscribe headers; buying a new ESP because headers were off; logging the POST and never dropping the row.

If Postmark Broadcast or Mailgun handling already suppresses, stop. The remaining work is CRM sync, which is a hop, not a third ESP.

Why the one-click button never shows

Headers can be perfect and Gmail still hides the button. Mailbox providers use reputation, user engagement, and their own UI rules. Apple Mail has historically leaned on mailto. Gmail may omit the chrome even when RFC 8058 is present. That is not a reason to skip headers. It is a reason not to treat the button as your only unsubscribe.

You still need a visible body link. You still need to honor both the POST and the body link in 48 hours. You still need Postmaster Tools. If spam rate is over 0.3%, fix list quality before you blame Postmark or Mailgun.

DKIM must cover the unsubscribe headers. If you add headers after signing, the mailbox will not trust the POST URI. Self-managed MIME is where this breaks. Postmark’s Broadcast default and Mailgun’s handling exist so you do not assemble MIME by hand.

List hygiene is the other half. RFC 8058 will not save a purchased list. Recipients who never opted in will still smash spam. The 5,000/day Gmail line is about bulk senders, not about permission. Stay under 5,000/day without headers and you can still be buried. Cross 5,000/day without headers on marketing and you are out of the bulk-sender rules.

Transactional streams should stay boring: receipts, resets, shipping. Do not “just BCC the newsletter” from the same From: as invoices. Split subdomains. Split streams. Then pick Postmark or Mailgun based on whether you want Broadcast-by-default or Mailgun-domain handling you must enable.

Self-managed unsubscribes are a compliance job. Postmark will let you manage your own headers after approval, and then you own the 48-hour honor, the suppression list, and the law. Mailgun will let you roll your own MIME. Most SMBs should not. The 44% time-management statistic is the reason: you will not babysit POSTs. Let the ESP insert headers and suppress, then hop to CRM only if the CRM is the list of record.

Warm-up still applies. A new Broadcast stream on a cold domain will not inbox just because RFC 8058 is present. Authenticate, ramp volume, watch Postmaster. If you are already over 5,000/day to Gmail, you are a bulk sender now, not next quarter. Turn headers on before you argue about which ESP’s dashboard is nicer.

Preference centers can exist on the confirmation page after the POST completes. They cannot be a second click required to finish the unsubscribe. If your current page requires a login or a checkbox, it is not RFC 8058. Fix the page, then pick Postmark or Mailgun. The ESP will not rewrite a bad landing URL into a one-click POST.

Measure honor latency. Log POST received_at and suppression written_at. If the p95 is over a few minutes, you have an app problem, not an ESP problem. Weekly CRM jobs fail the 48-hour rule by design. Move the CRM write to the webhook, then optionally hop a hold if the write fails. That is the only workflow worth buying on this page.

From: addresses should stay stable per stream. Do not rotate marketing From: weekly to “look fresh.” Mailboxes use that as a spam feature. Align SPF/DKIM/DMARC with the From: domain. RFC 8058 on a domain that fails DMARC is a well-documented unsubscribe on mail that may never inbox. Authenticate first. Headers second. ESP brand third.

If you are under 5,000/day and still seeing spam complaints, fix list quality before you switch ESPs. Headers help willing leavers. They do not convert angry recipients into fans. The NFIB 44% time crunch is why owners skip both the headers and the list hygiene. Do the headers this week. Trim the dead list this month. Then pick Postmark or Mailgun if you do not already have one.

Key Takeaways

  • RFC 8058 is headers plus a 48-hour honor, not a footer.

  • Time-management as top challenge: 44% according to NFIB (2024) is why owners skip the POST path.

  • Gmail’s 5,000/day line is the bulk-sender trigger.

  • Postmark auto-headers Broadcast; Mailgun auto-headers when you enable handling.

  • Orchestrate CRM suppressions; do not buy a third ESP for headers.

FAQs

Does Postmark add RFC 8058 on transactional mail?

Not by default. Broadcast streams get the headers automatically, according to Postmark (2026). Transactional can carry headers you add. Do not put one-click unsubscribe on password resets unless you mean it.

Does Mailgun require custom headers?

Not if you enable Mailgun unsubscribe handling. If you self-manage, you must add List-Unsubscribe and List-Unsubscribe-Post yourself, DKIM-signed, with a 48-hour honor path.

Not for bulk marketing over 5,000/day to personal Gmail. You need one-click headers plus a 48-hour honor path.

What is List-Unsubscribe-Post?

The header whose value is List-Unsubscribe=One-Click. It tells the mailbox to POST, not to open a preference center that requires another click.

Can I stitch this in n8n?

Yes: webhook → suppress → CRM, with retries. You own the 48-hour clock and idempotency. A hop is optional until the CRM write fails silently.

If the ESP is chosen and the remaining work is honor-path holds, compare a scoped flow on the public pricing page. Bring one Broadcast sample with headers, one POST log, and the person who owns the list.

About the Author

Garrett Mullins
Garrett Mullins
Workflow Specialist

Helping businesses leverage automation for operational efficiency.