Fix: Supabase Auth Confirmation Emails Not Being Sent
Quick Answer
Supabase's built-in email has a limit of 4 emails per hour on the free plan. For production, configure a custom SMTP provider in Authentication > Settings > SMTP Settings. Use Resend ($0 for 3,000 emails/month).
Quick Fix Summary
| Issue | Confirmation emails not sending |
| Fastest fix | Check email rate limits |
| Use this page if | Users sign up but never receive confirmation email |
Symptoms
- !Users sign up but never receive confirmation email
- !Password reset emails not arriving
- !Emails work in development but not production
- !Error: Email rate limit exceeded
Step-by-Step Fix
Check email rate limits
Free plan: 4 emails/hour. This is for development only. In production, you MUST configure custom SMTP. Go to Authentication > Settings > Email Settings to see current limits.
Configure custom SMTP
Go to Authentication > Settings > SMTP Settings. Enable custom SMTP and enter: Host: smtp.resend.com, Port: 465, User: resend, Password: your Resend API key.
Check spam folders
Supabase's default email domain (mail.app.supabase.io) sometimes gets flagged as spam. Custom SMTP with your own domain fixes this.
Disable email confirmation for development
In Authentication > Settings > Email Auth, toggle off 'Enable email confirmations' during development. Re-enable for production.
Frequently Asked Questions
The built-in email is rate-limited (4/hour on free) and often hits spam filters. Custom SMTP (Resend, SendGrid) gives you higher limits, better deliverability, and custom sender addresses.
Yes, Resend's free tier includes 3,000 emails/month — enough for most early-stage products.
Related
Weekly Signals
Get the next fix, switch, or warning before it hits your build.
Join builders getting the community signals, fix patterns, and tool shifts that matter before they show up everywhere else.
Follow the signals →