8 min read

Resend vs Postmark vs Mailgun: Which Free Tier Can Email Real Users?

All three say free. We signed up for each and sent a test email, then checked which free plan can actually reach your users.

Resend vs Postmark vs Mailgun: Which Free Tier Can Email Real Users?

Updated October 2026: rewritten around our own signup test of all three free tiers. Every price was rechecked, and the old claims about deliverability percentages and Mailgun's Flex plan are gone because we could not source them.

Free email tiers look alike on pricing pages. The differences show up in the first ten minutes, in what the signup asks for and in what the account lets you do before you pay.

How we tested: On October 13, 2026, we opened fresh free accounts on all three and timed every step from signup to the first email. Every screenshot below comes from those accounts.

What did each signup ask for?

Card Phone Asked for a manual review First test email
Resend No No No 4 min 34 s after opening the signup page
Postmark No No Yes, to email outside your own domains (per Postmark) 1 min 46 s
Mailgun Pre-ticked $35/mo trial, can be unticked Yes, mandatory Unknown, we stopped at the phone check Never reached

The times run from opening the signup page to the email landing, so they include our typing. From API request to arrival it took 31 seconds on Resend and 2 seconds on Postmark.

Resend's free plan needs only a domain to reach users

Signup asked for an email and a password (at least 12 characters). That was all. No company name, no use case, no card.

About a minute and a half of it was Resend's own fault. The "Confirm account" button spun for about a minute and never redirected, so we opened the dashboard by hand, found we were already logged in, and carried on. Creating an API key and sending through POST /emails took under a minute after that.

Resend's usage page on a new free account: 3,000 transactional emails a month and 100 a day

The dashboard showed the free limits exactly as the pricing page states them (checked October 13, 2026): 3,000 transactional emails a month, 100 a day, and 3 custom domains.

The catch is the sender. Without your own domain you send from [email protected], and Resend's docs say that address can only send to the email on your Resend account. To email anyone else you verify a domain with DNS records. It's free, and the free plan includes three, but budget the DNS step before launch day. We didn't time it.

And watch the 100 a day. A launch that brings 150 signups in an afternoon sends 100 welcome emails, and the API answers the rest with a daily_quota_exceeded error until midnight UTC. Received emails count toward that quota too (Resend's error docs). Pro removes the daily cap at $20 a month for 50,000 emails.

Postmark sends first, then waits for a human

Postmark asked for a full name, a work email, a username and a password. It confirmed the address by email, and the test send went through at once. From opening the signup page to the email in our inbox took 1 minute 46 seconds, and Postmark's delivery was 2 seconds of that.

Then we read the plans page.

Postmark's plans page on a new account: 100 free emails a month, and a banner saying the free plan starts only after an account approval request is reviewed

A new Postmark account is in test mode with 100 emails a month. Our send worked because the recipient was on the same domain as our confirmed sender address. Postmark's approval article says that until a person reviews the account, you can't send to any address outside the domains you've added and verified. Postmark says reviews finish in under 24 hours on weekdays. We didn't request one, so we can't confirm the timing.

So Postmark's free tier is for building and testing, not for running a product. The first real plan is Basic at $15 a month for 10,000 emails, with extra emails at $1.80 per 1,000 (pricing, checked October 13, 2026).

What the money buys is separation. Postmark's message streams send transactional and broadcast email on separate infrastructure, with a dedicated IP pool for each, so a newsletter that annoys people doesn't drag down your password resets. Basic includes up to 15 streams.

One small annoyance. Postmark won't delete a server's last API token, so to remove the one we used we had to generate a second one first. If you clean up test accounts, expect one spare token left behind.

Mailgun ticks a $35 trial for you, then asks for your phone

Mailgun's signup form arrives with "Add a credit card to remove the limit!" already ticked, and a full card form open below it for a free 30-day trial of Foundation at $35 a month.

Mailgun's signup form with the credit card box ticked by default and the card form open

Untick it and you get the free plan, which the form describes as limited to 100 messages a day. Signup continued on a Sinch login page for the password, the activation email arrived, and then this screen appeared:

Mailgun's account verification screen asking for a mobile phone number before the account can be used

"To prevent abuse, Mailgun requires you to verify your account through the use of a phone number." We stopped there, 2 minutes 18 seconds after opening the signup page, because we don't hand a phone number to a test account. So we can't report Mailgun's send time or its dashboard limits.

Even past the phone check, the free plan has a second wall. Mailgun's help pages say a free account without a card on file can only send to authorized recipients, meaning at most five addresses you add by hand, each confirming an invitation. Adding a card is what lets you send from your own domain to anyone.

What does each cost once you're past free?

Prices from each vendor's pricing page, checked October 13, 2026. Postmark's 50,000 and 125,000 tiers come from the plan table inside our new account (the screenshot above).

Emails per month Resend Postmark Mailgun
3,000 $0 (Free, 100 a day) $15 (Basic, free stops at 100) Free reaches only 5 approved addresses without a card
10,000 $20 (Pro) $15 (Basic) $15 (Basic)
50,000 $20 (Pro) $55 (Basic tier) $35 (Foundation)
100,000 $35 (Pro) $115 (125,000 tier) $75 (Foundation 100k)

Mailgun Basic at 50,000 would be $15 plus 40 × $1.80, which is $87, so Foundation at $35 wins. Postmark has no 100,000 tier, and the 50,000 tier plus 50 × $1.80 comes to $145, so the 125,000 tier at $115 is the cheaper way to cover it. At 100,000, Mailgun's pricing page lists a Foundation 100k tier at $75, below Scale at $90.

Resend costs the least, or ties, at every volume except 10,000, where Postmark Basic and Mailgun Basic cost $5 less. Postmark charges more from 50,000 up. Its Pro plan at $16.50 adds inbound email processing, and Platform at $18 lifts the limits on users, servers and message streams.

Which one should you pick?

You're launching a side project or an early SaaS: Resend. It's the only free plan here that can email real users with nothing more than a verified domain. Move to Pro at $20 when you hit the 100 a day cap.

You send both transactional and broadcast email and want them kept apart: Postmark. Plan a day for the account review, and price it at 50,000 emails before you commit, because that's where it falls behind.

You already have a card on file and send 50,000 or more a month: Mailgun's ladder (Foundation at $35 for 50,000 and $75 for 100,000) undercuts Postmark at those volumes. Resend is still cheaper at both, so pick Mailgun for a feature you need that Resend lacks, not for price. For a new project, the phone check, the pre-ticked trial and the five-recipient free tier make it the hardest of the three to start on.

We didn't measure inbox placement, so we're not ranking deliverability. If your product lives or dies on password reset emails, test that with your own domain before you choose.

Once email works, the next decisions on the same stack are usually auth, hosting and, for newsletters rather than transactional mail, a newsletter tool.

Frequently Asked Questions

Which of these email APIs work with Laravel?

All three. Laravel 13 ships mail drivers for Mailgun, Postmark and Resend, next to SMTP, Cloudflare, Amazon SES and sendmail. Mailgun and Postmark need the Symfony transport package (symfony/mailgun-mailer or symfony/postmark-mailer, plus symfony/http-client), and Resend needs resend/resend-php. Switching providers is mostly a change of MAIL_MAILER and the API key in your .env file, because your mailables stay the same. We did not test the Laravel drivers themselves, so this answer comes from the Laravel 13 mail documentation.

What happened to Mailgun's Flex pay-as-you-go plan?

Mailgun's pricing page no longer lists a Flex or pay-as-you-go plan (checked October 13, 2026). The plans shown are Free at 100 emails a day, Basic from $15 a month for 10,000 emails, Foundation at $35 for 50,000 or $75 for 100,000 and Scale at $90 for 100,000, with Foundation and Scale starting with a free month. If you still run on an old Flex account, check your invoice and the billing page in your dashboard, because we could not see legacy plans from a new account.

Found this useful? Follow @devtoolpicks on X for more honest tool comparisons.
Share: X/Twitter | LinkedIn |

Get honest tool comparisons in your inbox

Join 50+ indie hackers and solo developers who get new comparisons, pricing changes, and tool picks. No spam. Unsubscribe anytime.