Michael Bires
← All fix-it guides

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

  1. Built-in Supabase email — rate-limited (a handful per hour), shared infrastructure, aggressive spam filtering. Fine for testing; unreliable for customers.
  2. Site URL / redirect URLs wrong — password reset links point at localhost or an old preview URL (same fix as Google login).
  3. Auto-confirm enabled — you never notice missing emails because test accounts skip verification; real users hit flows you never tested.
  4. No custom SMTP — production apps need a real email provider (Resend, Postmark, SendGrid, AWS SES).

Quick checks (2 minutes)

  1. Supabase Dashboard → Authentication → Users — did the user actually get created? If yes, the app works; email delivery is the problem.
  2. Authentication → Logs — look for email send failures or rate-limit errors.
  3. Authentication → URL Configuration — Site URL must match your live domain. Reset links use this.
  4. 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)

  1. Create a Resend account and verify your domain (DNS records: SPF, DKIM).
  2. Supabase Dashboard → Project Settings → Authentication → SMTP Settings.
  3. Enable custom SMTP:
FieldTypical value
Hostsmtp.resend.com
Port465 (SSL)
Usernameresend
PasswordYour Resend API key
Sender emailnoreply@yourdomain.com (must be on verified domain)
  1. 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