Lovable Emails Not Sending? Fix Signup & Password Reset
Users sign up but never get a confirmation email? Password reset links go nowhere? Supabase's built-in email is rate-limited and lands in spam — here's how to fix it.
Your auth flow "works" — until a real user signs up and never receives a confirmation email. Or they click "Forgot password" and nothing arrives. You check spam. Nothing. You ask Lovable to fix it. It changes the email template. Still nothing.
This isn't a frontend bug. Supabase sends the emails, and the default setup is fine for demos, not for production.
Why emails fail in Lovable apps
- Built-in Supabase email — rate-limited (a handful per hour), shared infrastructure, aggressive spam filtering. Fine for testing; unreliable for customers.
- Site URL / redirect URLs wrong — password reset links point at
localhostor an old preview URL (same fix as Google login). - Auto-confirm enabled — you never notice missing emails because test accounts skip verification; real users hit flows you never tested.
- No custom SMTP — production apps need a real email provider (Resend, Postmark, SendGrid, AWS SES).
Quick checks (2 minutes)
- Supabase Dashboard → Authentication → Users — did the user actually get created? If yes, the app works; email delivery is the problem.
- Authentication → Logs — look for email send failures or rate-limit errors.
- Authentication → URL Configuration — Site URL must match your live domain. Reset links use this.
- Try signup with your own email. Wait 5 minutes. Check spam and promotions tab.
The real fix: custom SMTP
Option A — Resend (most common for Lovable stacks)
- Create a Resend account and verify your domain (DNS records: SPF, DKIM).
- Supabase Dashboard → Project Settings → Authentication → SMTP Settings.
- Enable custom SMTP:
| Field | Typical value |
|---|---|
| Host | smtp.resend.com |
| Port | 465 (SSL) |
| Username | resend |
| Password | Your Resend API key |
| Sender email | noreply@yourdomain.com (must be on verified domain) |
- Authentication → Email Templates — customize confirm signup and reset password templates. Ensure links use
{{ .ConfirmationURL }}and{{ .SiteURL }}correctly.
Option B — Other providers
Postmark, SendGrid, and AWS SES work the same way: verify domain, add SMTP credentials in Supabase, set a real sender address on your domain.
Auth settings to verify while you're there
- Enable email confirmations if you want verified users — and test the full flow after enabling.
- Secure email change — on for production.
- Password reset — confirm redirect URL in the template matches your live Site URL.
- Rate limits — Supabase Auth rate limits can block bursts of signups; check Authentication → Rate Limits if emails stop after a spike.
"Emails worked yesterday"
If nothing changed in your code but email stopped:
- You hit the built-in email quota (resets slowly).
- Your domain got greylisted because you sent from an unverified address.
- Supabase Site URL changed when you connected a custom domain — reset links now point somewhere invalid.
When to bring me in
Email + auth + custom domain issues often stack: wrong Site URL, no SMTP, and a broken reset flow in the app. Fixing one in isolation wastes another week of prompts.
My $299 triage maps every auth and email path (signup, confirm, reset, magic link), checks Supabase and your live domain, and gives you a fix plan — or I wire SMTP, templates, and redirects in the Priority Fixes package ($799).
Stuck? I'll fix it for a fixed price.
I'm a senior full-stack engineer who audits, fixes, hardens, and deploys broken Lovable, Bolt, Cursor, v0, and Replit apps. Fixed price — diagnose before I touch a line of code, so you stop burning credits on prompts that make it worse.
Vibe-Code Rescue — from $299