Resend: e-mail transacional que chega
E-mail parece resolvido — até você precisar que ele chegue de verdade, na caixa de entrada, não no spam. No ClubPetro o e-mail transacional roda no Resend. Este post mostra como integramos e por que e-mail é mais traiçoeiro do que parece.
O que é e-mail transacional
Não é newsletter. É o e-mail que o sistema dispara em resposta a algo: notificação, alerta, confirmação, resumo. Tem que ser confiável, rápido e chegar — porque o usuário conta com ele.
Por que Resend
Resend é uma API de e-mail pensada pra dev: integração simples, boa entregabilidade e DX limpa. No nosso stack ele é o componente de e-mail do pacote de mensageria (@repo/messaging), ativado por env (RESEND_API_KEY, RESEND_FROM_EMAIL, RESEND_FROM_NAME).
Onde vibe coding acelera (e onde não basta)
A IA monta rápido o cliente de envio e o template. O que não se resolve só com código:
Entregabilidade é configuração, não código
E-mail cair no spam quase nunca é bug de código — é DNS/reputação: SPF, DKIM, DMARC, domínio aquecido. A integração mais perfeita não salva um domínio mal configurado. Isso é setup de infra, não prompt.
Conteúdo importa pra chegar
Assunto espalhafatoso, excesso de link, imagem demais — gatilhos de spam. E-mail transacional bom é sóbrio e direto.
Os padrões da casa pra e-mail
- Secrets em env — chave do Resend nunca no código (#37).
- Resiliência — envio falha? Retry (e, em job, idempotência pra não mandar duplicado — Módulo 4).
- Abstração — o resto da app chama
@repo/messaging, não o Resend direto. Trocar de provedor um dia não deve espalhar mudança pelo código. - Degradação graciosa — Resend fora do ar não pode derrubar a ação principal do usuário. E-mail é importante, mas é efeito colateral, não o coração da transação.
A régua de notificação
E-mail é um canal entre vários (tem também WhatsApp, in-app). Qual evento vai por qual canal é decisão de produto — a gente tem inclusive uma matriz de notificações como fonte da verdade. Mandar e-mail demais treina o usuário a ignorar; o canal certo na hora certa é o que faz ele continuar abrindo.
⚠️ Armadilha #35: debugar "e-mail não chega" no código quando o problema é DNS/reputação do domínio. Antes de mexer na integração, confira SPF/DKIM/DMARC — é lá que mora 90% do "sumiu no spam".
Próximo da série: #36 — Google Analytics, Search Console e Ads.