Pular para conteúdo

E-mail (Resend)

A API envia e-mails (recuperação de senha, por exemplo) pelo Resend. O envio sai com o remetente do próprio domínio, no-reply@braggo.com.br.

Como funciona

  1. A API chama o Resend usando Resend__ApiKey.
  2. O Resend envia o e-mail em nome de braggo.com.br, assinando com uma chave DKIM.
  3. Quem recebe (Gmail, Outlook) confere os registros DNS do domínio para ter certeza de que o e-mail é legítimo.

Variáveis envolvidas (em /etc/braggo-api.env, veja Configuração e segredos):

Variável Valor
Resend__ApiKey chave criada no painel do Resend
Resend__From Braggo <no-reply@braggo.com.br>
App__UrlFrontend https://braggo.com.br (base dos links dentro do e-mail)

Remetente de teste

onboarding@resend.dev só entrega para o e-mail da sua conta do Resend. Usuários reais só recebem depois que o domínio estiver verificado e o Resend__From apontar para ele.

Registros DNS na Cloudflare

Em Domains > braggo.com.br > DNS. Os registros do e-mail ficam sempre em "DNS only" (nuvem cinza): e-mail não passa pelo proxy da Cloudflare.

Tipo Nome Para que serve
TXT resend._domainkey DKIM: chave pública para conferir a assinatura dos e-mails
CNAME send envio e retornos (SPF/bounce) pelo subdomínio send
CNAME rsend apoio do Resend ao subdomínio de envio
MX braggo.com.br (., prioridade 0) "Null MX": o domínio não recebe e-mail
TXT braggo.com.br (v=spf1 -all) SPF da raiz: ninguém envia pelo domínio raiz
TXT _dmarc (v=DMARC1; p=reject;) política: rejeitar e-mail que falhe na autenticação

Os valores dos registros do Resend são gerados por ele, não copie daqui: ao adicionar um domínio novo, use o botão Auto configure (conecta na Cloudflare e cria tudo) ou o Manual setup (ele lista, você cria em Add record).

Os registros do Resend ficam no subdomínio send, por isso não conflitam com o SPF e o MX da raiz.

DMARC em uma frase

É a regra que diz ao Gmail o que fazer com e-mail que falha na checagem:

Política Efeito
p=none entrega normalmente, só observa
p=quarantine manda para o spam
p=reject rejeita, o e-mail nem chega

Hoje está em reject e os e-mails legítimos passam. Se algum dia e-mails sumirem depois de uma mudança no DNS, troque temporariamente para v=DMARC1; p=none;, investigue e depois volte.

Verificar domínio no Resend (domínio novo)

  1. Painel do Resend > Domains > Add domain > digite o domínio.
  2. Auto configure (autorize a Cloudflare) ou Manual setup.
  3. Aguarde o status Verified (minutos a poucas horas).
  4. Só então ajuste o remetente:
sudo nano /etc/braggo-api.env       # Resend__From=Braggo <no-reply@braggo.com.br>
sudo systemctl restart braggo-api

Trocar o From antes da verificação faz os envios falharem.

Como testar

  1. Em https://braggo.com.br, dispare a recuperação de senha com um e-mail que não seja o da sua conta do Resend.
  2. Confira: chegou (olhe o spam), o remetente é no-reply@braggo.com.br e o link abre https://braggo.com.br/....
  3. No Gmail: três pontinhos > Mostrar original. SPF, DKIM e DMARC devem aparecer como PASS.

O painel do Resend, na aba Emails, mostra o status de cada envio (entregue, recusado, etc.).

Problemas comuns

Sintoma Causa provável O que fazer
E-mail não chega domínio não verificado, ou From ainda onboarding@resend.dev confira o status no Resend e o Resend__From
Chegou, mas o link abre localhost App__UrlFrontend errado ou ausente corrija no .env e reinicie a API
Erro 500 ao pedir recuperação de senha Resend__ApiKey ausente ou inválida sudo journalctl -u braggo-api -n 50 --no-pager
Vai para o spam DKIM/SPF não passando veja o cabeçalho "Mostrar original"
Parou de funcionar do nada chave revogada ou limite do plano painel do Resend (Emails e API Keys)