Supabase error sending confirmation email: o e-mail não chega
22 de outubro de 2026 · 5 min de leitura
“supabase error sending confirmation email” significa que o Supabase Auth não enviou o e-mail de confirmação. “email rate limit exceeded” é esse envio parado no limite. O SMTP embutido é de teste, com 2 mensagens por hora e só para a organização. Sem SMTP próprio o cliente não recebe. Site URL em localhost ou no preview manda o link errado.
No Lovable, no Bolt e no Cursor o app nasce em cima do Supabase do projeto. O e-mail sai de lá. A tela de “verifique sua caixa” não prova que a mensagem foi entregue.
O que a documentação descreve
O SMTP embutido não é para produção. A doc diz que ele existe para explorar o Auth, testar template com a equipe e projetos de demonstração. Hoje o limite é 2 mensagens por hora e pode mudar sem aviso. Endereço que não é membro da organização falha com o código email_address_not_authorized. Fonte: Custom SMTP e códigos de erro.
O código over_email_send_rate_limit é outro caso: e-mails demais para aquele endereço. A tabela de limites chama o teto do provedor embutido de 2 e-mails por hora no projeto. Com SMTP próprio, o teto inicial documentado passa a 30 por hora, e você ajusta em Rate Limits. Fonte: Rate limits.
A Site URL é o redirect padrão do link de confirmação quando o código não manda redirectTo. O valor de fábrica é http://localhost:3000. A doc pede para trocar pelo domínio publicado. Esse ajuste é decisivo para o e-mail de confirmação e para a recuperação de senha. Cada redirectTo precisa estar na lista Redirect URLs. Preview não substitui o endereço final. Fonte: Redirect URLs.
Passo a passo
-
Leia o código, não só a frase da tela. “Error sending confirmation email” é a entrega que não saiu.
email_address_not_authorizedé o SMTP padrão recusando quem não está na organização.over_email_send_rate_limité limite para aquele endereço. Os Auth logs mostram a falha na hora de passar a mensagem ao provedor. Fonte: e-mails que não chegam. -
Configure um SMTP seu. Em Authentication, ative o SMTP personalizado: host, porta, usuário, senha e um From, no estilo
no-reply@seudominio.com. A doc cita Resend, Amazon SES, Postmark, SendGrid, ZeptoMail e Brevo como exemplos, não como lista fechada. A senha fica no painel, não no JavaScript. Sem isso, o cadastro de um cliente real não tem de onde sair. -
Aponte Site URL e Redirect URLs para o app publicado. Em URL Configuration, a Site URL deixa de ser localhost ou o domínio de preview do Lovable, da Vercel ou do Bolt. Inclua o caminho para onde o link volta. No domínio próprio, o mesmo passo está em como publicar o app.
-
Cuide de spam, SPF, DKIM e DMARC em linhas gerais. A doc pede esses três no domínio que envia, configurados com o provedor de e-mail. Mensagem no spam acontece, sobretudo com o provedor padrão, que envia pelo domínio
supabase.io. SMTP próprio devolve esse controle para você. Não misture e-mail de login com e-mail de marketing no mesmo domínio. -
Não desligue a confirmação de e-mail. A doc de SMTP pede para não desligar email confirmations sob pressão. Sem a confirmação, a conta existe sem provar que a pessoa tem aquele endereço. Em produção, isso não é o conserto.
-
Confirme com um e-mail de fora da equipe. Cadastre um endereço que não é membro da organização do Supabase. A mensagem chega, o link abre o domínio publicado (não localhost nem o preview) e os Auth logs não mostram falha de entrega. O Faro Check não envia e-mail e não lê caixa de entrada.
Quando o e-mail passa e o insert quebra, o erro seguinte é new row violates row level security policy. Para ver se a tabela está aberta, use o Supabase RLS checker. O que continua com você no app gerado está em Lovable é seguro?.
Prompt para colar
Copie e cole este prompt na ferramenta que você usa para criar o app
O cadastro mostra "Error sending confirmation email" ou "email rate limit exceeded". Não desligue a confirmação de e-mail. Configure SMTP próprio no Supabase, com host, porta, usuário, senha e From, e guarde a senha só no painel. Em URL Configuration, a Site URL é o domínio publicado, não localhost nem o preview, e cada redirectTo está em Redirect URLs. Mostre o que muda antes de aplicar.
Perguntas frequentes
O que é supabase error sending confirmation email?
É o Auth que não entregou o e-mail de confirmação. As causas que a documentação cobre são o SMTP padrão (teste, 2 mensagens por hora, só a organização), o limite over_email_send_rate_limit e um SMTP próprio mal configurado. O lugar para ver a falha são os Auth logs.
O que significa email rate limit exceeded no Supabase?
O código documentado é over_email_send_rate_limit: e-mails demais para aquele endereço. No provedor embutido, o projeto também tem o teto de 2 e-mails por hora. Esperar não resolve o cadastro de cliente. O caminho da doc é SMTP próprio e, se precisar, subir o limite em Rate Limits.
Posso desligar a confirmação de e-mail para o Lovable funcionar?
Não em produção. A doc pede para não desligar a confirmação. O usuário entraria sem provar que o e-mail é dele. Configure SMTP e a Site URL.
O e-mail chegou, mas o link abre localhost. O que houve?
A mensagem saiu. A Site URL ou o redirectTo ainda apontam para localhost ou para o preview. Troque os dois para o domínio publicado, na lista Redirect URLs.