SMTP para Lovable e Bolt
O app ficou pronto. O e-mail de login não chega.
Você montou no Lovable ou no Bolt, ligou o Supabase e mandou o link. As primeiras pessoas se cadastram e a confirmação nunca chega. Não é o seu app: o envio de e-mail que vem com o Supabase Auth foi feito para testar.
3.000 e-mails por mês grátis. Sem cartão para começar.
Por que o e-mail de login não chega
2 e-mails por hora
O envio que vem com o Supabase Auth manda 2 por hora para o projeto inteiro. Os dois primeiros cadastros já esgotam a cota.
Só a sua equipe recebe
Sem SMTP próprio, só os membros da sua organização no Supabase recebem. Os seus usuários recebem email_address_not_authorized.
O chat não muda isso
Com um projeto Supabase seu, as configurações do Auth ficam no painel do Supabase, não no Lovable. O SMTP vai lá; o prompt abaixo arruma o lado do app.
Link para localhost
Link de confirmação apontando para localhost ou para a URL de pré-visualização parece e-mail que não funciona. O prompt pede a URL de produção.
Números do Supabase da documentação do Auth, conferidos em 20/10/2026. O comportamento do Lovable vem da página Connect to Supabase, conferida em 24/10/2026. Se o seu projeto usa o backend embutido do Lovable em vez de um projeto Supabase seu, o próprio Lovable manda os e-mails de login e este caminho não se aplica.
Os campos para colar
No painel do Supabase: Authentication > Emails > SMTP Settings, ligue Enable Custom SMTP e preencha:
| Campo | Valor | Observação |
|---|---|---|
| Host | smtp.couryo.com | |
| Port number | 587STARTTLS. Ou 465 (TLS) ou 2525 (STARTTLS, quando a 587 está bloqueada). | STARTTLS. Ou 465 (TLS) ou 2525 (STARTTLS, quando a 587 está bloqueada). |
| Username | couryoSempre esta palavra, para qualquer conta. | Sempre esta palavra, para qualquer conta. |
| Password | ck_live_...Uma chave de API do Couryo com escopo send. Uma chave ck_test_ captura o e-mail no painel e não entrega nada. | Uma chave de API do Couryo com escopo send. Uma chave ck_test_ captura o e-mail no painel e não entrega nada. |
| Sender email | nao-responda@auth.seuapp.com.brUm endereço de um domínio verificado no Couryo. | Um endereço de um domínio verificado no Couryo. |
| Sender name | Seu appO nome que a pessoa vê na caixa de entrada. | O nome que a pessoa vê na caixa de entrada. |
Salve e, logo depois, abra Authentication > Rate Limits e suba os e-mails por hora. Ao salvar o SMTP próprio, o Supabase começa em 30 por hora; é o passo que mais gente esquece.
O prompt para colar no Lovable
Troque o remetente de exemplo pelo seu e cole no chat do Lovable (funciona no Bolt também). Ele arruma os links de retorno, a página de nova senha e a mensagem do 429, e devolve o checklist do Supabase. A chave nunca entra no código.
Meu app faz login com um projeto Supabase meu. Os e-mails do Auth (confirmação de cadastro, link mágico e recuperação de senha) vão passar a sair pelo SMTP do Couryo, com o remetente nao-responda@auth.seuapp.com.br. Eu mesmo vou preencher o SMTP no painel do Supabase: nunca peça a senha do SMTP e nunca grave essa senha em nenhum arquivo do projeto.
Faça estas mudanças no código:
1. Em signUp, signInWithOtp e resetPasswordForEmail, passe emailRedirectTo (ou redirectTo) com a URL de produção do app, nunca localhost.
2. Crie a página /redefinir-senha, que lê a sessão do link e chama supabase.auth.updateUser({ password }).
3. Quando o Supabase responder 429 ou over_email_send_rate_limit, mostre "Já enviamos um e-mail há pouco. Confira a caixa de entrada e o spam; em 1 minuto você pode pedir de novo." e desative o botão de reenviar por 60 segundos, com um contador.
4. Depois, me passe este checklist para o painel do Supabase:
- Authentication > Emails > SMTP Settings: ligar Enable Custom SMTP. Host smtp.couryo.com, Port number 587, Username couryo, Password = a minha chave de API do Couryo com escopo send, Sender email nao-responda@auth.seuapp.com.br, Sender name = o nome do meu app.
- Authentication > Rate Limits: e-mails por hora para o meu pico de cadastros.
- Authentication > URL Configuration: Site URL e Redirect URLs com o domínio de produção.Três passos, sem mudar código
- 1
Verifique o domínio de envio
No Couryo, em Domínios, adicione o domínio (um subdomínio só para o login, como auth.seuapp.com.br, separa o Auth do marketing). Cada registro DNS mostra o status ao vivo, com a Cloudflare em um clique.
- 2
Crie a chave do SMTP
No painel, Chaves de API > Conectar ao Supabase cria uma chave só com escopo send e mostra cada campo com botão de copiar. A chave inteira aparece uma única vez.
- 3
Cole, salve e teste
Cole os campos no Supabase, suba o limite por hora e cadastre um usuário de teste. O e-mail aparece na linha do tempo do Couryo: aceito, enviado e entregue, com a resposta do servidor de destino em português.
Quanto custa
E-mail de login é transacional: sai em qualquer plano, inclusive no Grátis. Preço em reais, com Pix.
Grátis
R$ 0 para sempre
- 3.000 e-mails por mês
- Até 100 por dia
- 1 domínio verificado
- Linha do tempo de cada e-mail
Pro
R$ 99 por mês
- 50.000 e-mails por mês
- 10 domínios
- Logs de 30 dias
- Cancela em um clique
Perguntas frequentes
- O Lovable consegue trocar o SMTP do Supabase sozinho?
- Com um projeto Supabase seu, não: a documentação do Lovable diz que as configurações do Auth ficam no painel do Supabase, não no Lovable. Cole os campos do SMTP lá; o prompt desta página arruma o lado do app e devolve o checklist.
- Quais dados de SMTP eu uso?
- Host smtp.couryo.com, porta 587 (STARTTLS), 465 (TLS) ou 2525, usuário couryo, senha = uma chave de API do Couryo com escopo send e um Sender email de um domínio verificado no Couryo.
- Funciona no Bolt?
- Sim, quando o app do Bolt usa um projeto Supabase seu para o login: o SMTP vai no mesmo lugar do painel do Supabase, e o prompt funciona no chat do Bolt.
- Meu projeto usa o backend embutido do Lovable. Vale para mim?
- Não. No backend embutido, o próprio Lovable manda os e-mails de login. Este caminho é para projetos ligados a um projeto Supabase seu.
- Quanto custa?
- O plano Grátis tem 3.000 e-mails por mês, até 100 por dia, para sempre. O Pro custa R$ 99 por mês com 50.000 e-mails. Preço em reais, com Pix.
- Dá para testar antes de abrir para o público?
- Sim. Use uma chave ck_test_ como senha do SMTP: o Couryo captura o e-mail e mostra no painel, com o link, sem entregar nada. Troque pela chave ck_live_ quando o fluxo estiver certo.
Faça o próximo e-mail de cadastro chegar
3.000 e-mails por mês grátis. Sem cartão para começar.