Supabase Auth Custom SMTP Comparison - Evaluating All 6 Services from the Official Docs

Tadashi Shigeoka ·  Wed, January 21, 2026

Supabase Auth is a BaaS that supports email verification, magic links, OTP, and more. However, its default SMTP server has strict sending limits that make it unusable in production.

The Supabase documentation lists the following 6 email services under “How to set up a custom SMTP server?”:

This post compares all 6 services by free tier, SMTP configuration, and ease of setup to help you pick the right one.

Default SMTP Limitations

First, why custom SMTP is required. Supabase’s default SMTP has the following limitations:

LimitationDetails
Recipient restrictionPre-authorized addresses only (organization team members)
Rate limitLimited messages per hour (subject to change without notice)
Production useNot recommended (intended for development and testing)

Even basic functionality like sending confirmation emails during sign-up won’t work with the default SMTP. If you’re using Supabase Auth in production, configuring a custom SMTP provider is mandatory.

Free Tier Comparison

Here’s how the 6 services compare on their free tiers:

ServiceFree Tier (Monthly)Daily LimitFree Tier DurationCheapest Paid Plan
Resend3,000 emails100Unlimited$20/mo (50,000 emails)
AWS SES3,000 emailsNone12 months$0.10/1,000 emails (pay-as-you-go)
Postmark100 emailsNoneUnlimited$15/mo (10,000 emails)
Twilio SendGrid100 emails/day (trial)10060-day trialFrom $19.95/mo
ZeptoMail10,000 emails (one-time)NoneCredit expires in 6 months$2.50/10,000 emails (pay-as-you-go)
Brevo~9,000 emails300Unlimited$9/mo (5,000 emails)

Free Tier Analysis

Brevo offers the most generous free tier by daily volume. At 300 emails per day, it can handle auth emails for mid-sized services. That translates to roughly 9,000 emails per month.

Permanent free tiers are available from Resend, Postmark, and Brevo. AWS SES expires after 12 months, and SendGrid only offers a 60-day trial. ZeptoMail gives a one-time credit of 10,000 emails, but it’s pay-as-you-go after that.

Postmark’s 100 emails per month is too low for production use. It’s practical only for testing or hobby projects.

SMTP Configuration Comparison

Here are the SMTP settings for each service, which you’ll enter in the Supabase dashboard under “SMTP Settings”:

ServiceHostPortUsernamePassword
Resendsmtp.resend.com465resendAPI key
AWS SESemail-smtp.{region}.amazonaws.com465 / 587SMTP username (generated via IAM)SMTP password (generated via IAM)
Postmarksmtp.postmarkapp.com587Server API tokenServer API token
SendGridsmtp.sendgrid.net587apikeyAPI key
ZeptoMailsmtp.zeptomail.com465 / 587emailapikeySMTP password (generated in dashboard)
Brevosmtp-relay.brevo.com587Account email addressSMTP key (generated in dashboard)

Ease of Setup

Resend and SendGrid have the simplest setup. Generate an API key, paste it as the password, and you’re done. The username is a fixed value (resend / apikey), so there’s nothing to figure out. Resend also provides a dedicated Supabase integration guide.

AWS SES requires the most steps. You need to create an IAM user, generate SMTP credentials, verify your domain in SES, and request sandbox removal. Straightforward if you’re familiar with AWS, but a higher barrier for newcomers.

ZeptoMail and Brevo fall in the middle. You need to generate SMTP keys in their dashboards, but the process isn’t particularly complex.

Recommendations by Use Case

Personal projects or small-scale services: Resend

Maximizing the free tier: Brevo

  • 300 emails/day (~9,000/month) is the largest free tier among all 6 services
  • Permanent free tier with no expiration
  • Marketing email features also available

Already using AWS: AWS SES

  • Seamless integration with the AWS ecosystem
  • Pay-as-you-go pricing ($0.10/1,000 emails) keeps costs low at scale
  • Low cost even after the 12-month free tier expires
  • CloudWatch metrics for monitoring

Prioritizing deliverability: Postmark

  • Specializes in transactional email with strong deliverability
  • Free tier is only 100 emails/month, so expect to use a paid plan ($15/month and up)

Custom SMTP Setup Steps

Regardless of which service you choose, the setup flow is the same.

1. Create an Account

Sign up for the email service you’ve chosen.

2. Add and Verify Your Domain

Register your sending domain with the service and add DNS records (SPF, DKIM, DMARC) to your domain’s DNS settings. DNS propagation can take anywhere from a few minutes to 72 hours. If you’re using a DNS service like Cloudflare, it typically resolves within minutes.

3. Get SMTP Credentials

Generate SMTP credentials (API key or SMTP password) in the service’s dashboard. Refer to the “SMTP Configuration Comparison” table above for the specific values.

4. Configure Custom SMTP in Supabase

Enable custom SMTP in the Supabase dashboard and enter the credentials:

  1. Open your project
  2. Select “Authentication” from the left sidebar
  3. In the “SMTP Settings” section, toggle “Enable Custom SMTP” on
  4. Enter the Host, Port, Username, and Password (values vary by service)
  5. Set the Sender email to an address on your verified domain (e.g., noreply@example.com)
  6. Click “Save”

5. Adjust Rate Limits

Right after configuring custom SMTP, Supabase applies a default rate limit of 30 messages per hour. You can adjust this in the “Rate Limits” settings page in the Supabase dashboard.

Set the rate limit within your service’s free tier daily cap to avoid delivery failures.

6. Verify the Setup

  1. Go to “Authentication” > “Users” in the Supabase dashboard
  2. Click “Add User” > “Send Invitation” and send a test email
  3. Verify that the email arrives

You can also check delivery logs in your email service’s dashboard.

Things to Watch Out For

Know Your Free Tier Limits

Each service has its own free tier limits. Exceeding them will cause email delivery failures, preventing users from completing sign-up or password reset flows. Pay attention during traffic spikes such as right after launch or during promotions.

Maintain Domain Reputation

If the DNS records for your sending domain (SPF, DKIM, DMARC) are misconfigured or removed, your emails may be flagged as spam. Don’t delete the DNS records you set up during domain verification.

Summary

Supabase Auth’s default SMTP is limited to development and testing. Custom SMTP is required for production use.

Among the 6 services listed in the official docs, Resend offers the best balance of free tier and ease of setup. It comes with 3,000 emails per month on a permanent free tier, and has comprehensive Supabase integration documentation.

If you want the largest free tier, Brevo (300 emails/day, ~9,000/month) is the best choice. If you’re already on AWS, AWS SES (pay-as-you-go at $0.10/1,000 emails) is the most cost-effective option at scale.

PriorityRecommendation
Ease of setupResend
Largest free tierBrevo
Cost at scaleAWS SES
DeliverabilityPostmark

Setup takes about 30 minutes to an hour regardless of which service you choose. If you plan to use Supabase Auth in production, configure custom SMTP early in your project.

References

That’s all for comparing custom SMTP options for Supabase Auth. From the gemba.