emailr_
Todos os artigos
list·10 min

15 erros comuns de e-mail que desenvolvedores cometem

best-practicesmistakestroubleshooting

Resumo

Esses erros parecem óbvios em retrospecto, mas pegam até desenvolvedores experientes. Aprenda com a dor dos outros para não repetir.

O postmortem foi desconfortável. Um engenheiro sênior havia feito deploy de um código que enviava e-mails de redefinição de senha para usuários errados. Não usuários aleatórios — o usuário anterior na consulta ao banco de dados. Uma cláusula WHERE ausente fazia com que cada e-mail de redefinição fosse para o usuário imediatamente anterior ao que fez a solicitação. Milhares de e-mails, todos para as pessoas erradas.

A correção levou cinco minutos. A resposta ao incidente levou cinco dias. A recuperação da confiança levou meses.

Erros de e-mail são especialmente dolorosos porque são visíveis para os usuários, muitas vezes irreversíveis, e podem ter implicações legais ou de segurança. Estes são os erros que continuam aparecendo em postmortems, chamados de suporte e sessões de depuração madrugada adentro.

Erros de autenticação

1. Esquecer de atualizar o SPF ao adicionar novos serviços. Você adiciona uma nova ferramenta de marketing, ela começa a enviar e-mail, e de repente seus e-mails falham no SPF. Todo serviço que envia e-mail como seu domínio precisa estar no seu registro SPF. Mantenha uma lista de remetentes autorizados e atualize o SPF quando ela mudar.

2. Usar ~all em vez de -all no SPF. Falha suave (~all) diz aos servidores receptores "isto pode não estar autorizado, mas não rejeite". Fornece monitoramento, mas não proteção. Use falha rígida (-all) quando tiver verificado que todos os remetentes legítimos estão autorizados.

3. Não monitorar relatórios de DMARC. Você configura o DMARC com p=none para coletar relatórios e depois nunca os analisa. Os relatórios mostram falhas de autenticação e remetentes não autorizados — informações valiosas que se tornam inúteis se ignoradas. Use um serviço de análise de DMARC para tornar os relatórios acionáveis.

4. Exceder o limite de 10 consultas do SPF. Cada include no seu registro SPF aciona consultas DNS. Se passar de 10, todo o seu registro SPF fica inválido. À medida que você adiciona serviços, você atinge esse limite mais rápido do que o esperado. Use SPF flattening ou subdomínios para ficar abaixo do limite.

Erros de envio

5. Enviar para os destinatários errados. O erro clássico: um e-mail de teste vai para usuários de produção, ou um filtro de segmento está errado, ou uma consulta ao banco de dados retorna resultados inesperados. Sempre verifique as listas de destinatários antes de enviar, especialmente para campanhas grandes. Use seed lists e checagens pontuais.

6. Não tratar bounces. Hard bounces significam que o endereço é permanentemente inválido. Continuar enviando para endereços que deram bounce prejudica sua reputação e desperdiça recursos. Implemente tratamento de bounces que remova hard bounces imediatamente e rastreie soft bounces para remoção eventual.

7. Ignorar rate limits. ESPs e servidores de recebimento têm rate limits. Se você os exceder, seus e-mails serão submetidos a throttling ou rejeitados. Implemente fila adequada e respeite os rate limits. Picos súbitos de volume também acionam filtros de spam — aumente gradualmente.

8. Enviar de um endereço no-reply. [email protected] diz aos destinatários que você não quer ouvir deles. Isso impede respostas que podem conter feedback valioso ou indicar problemas de entrega. Use um endereço monitorado, mesmo que você direcione as respostas para um sistema de tickets.

Erros de conteúdo

9. Personalização quebrada. Quando as merge tags falham, os destinatários veem {{first_name}} ou, pior, os dados de outro usuário. Sempre defina valores de fallback para a personalização. Teste com dados ausentes para ver o que os destinatários realmente recebem.

10. Renderização de HTML não testada. Seu e-mail parece perfeito no Gmail. Está quebrado no Outlook. HTML de e-mail não é o mesmo que HTML da web — exige tabelas para layout, estilos inline e testes cuidadosos entre clientes. Use ferramentas de pré-visualização antes de enviar.

11. Sem versão em texto puro. Alguns destinatários preferem texto puro. Alguns filtros de spam penalizam e-mails apenas em HTML. Sempre inclua uma alternativa em texto puro que seja realmente legível, não apenas um despejo do conteúdo HTML.

12. Links quebrados. Links que dão 404, loops de redirecionamento ou apontam para ambientes de staging. Clique em cada link antes de enviar. Automatize a verificação de links no seu processo de pré-envio.

Erros de infraestrutura

13. Deixar credenciais SMTP hardcoded. Credenciais no código acabam em controle de versão, logs e mensagens de erro. Use variáveis de ambiente ou um gerenciador de segredos. Rotacione as credenciais se elas já tiverem sido expostas.

14. Sem lógica de retry para falhas transitórias. Conexões SMTP falham. Servidores retornam erros temporários. Sem lógica de retry, essas falhas transitórias viram falhas permanentes de entrega. Implemente backoff exponencial e retries para erros recuperáveis.

15. Envio de e-mail síncrono. Enviar e-mail no ciclo de requisição/resposta torna sua aplicação lenta e frágil. Se o servidor de e-mail estiver lento ou fora do ar, sua aplicação ficará lenta ou fora do ar. Use uma fila para envio de e-mail — aceite a requisição, coloque o e-mail na fila, retorne imediatamente.

O metaerro

O maior erro é tratar e-mail como algo simples. "É só enviar um e-mail" parece trivial até você estar depurando problemas de entregabilidade às 2 AM, explicando para o jurídico por que unsubscribe não funciona, ou dizendo aos clientes que as redefinições de senha deles foram para desconhecidos.

E-mail é um sistema distribuído com componentes não confiáveis, implementações inconsistentes e alto risco. Trate-o com o mesmo rigor que você aplicaria a qualquer sistema crítico: testes, monitoramento, tratamento de erros e resposta a incidentes.

Estratégias de prevenção

Listas de verificação. Uma checklist de pré-envio captura erros óbvios antes que cheguem aos destinatários. Torne-a obrigatória, não opcional.

Ambientes de teste. Nunca teste com dados de produção ou destinatários de produção. Use ambientes de teste dedicados com dados falsos e endereços internos.

Implantações em etapas. Para campanhas grandes, envie para uma pequena porcentagem primeiro. Verifique se tudo funciona antes de enviar para a lista completa.

Monitoramento. Acompanhe taxas de entrega, taxas de bounce e taxas de reclamação. Anomalias indicam problemas — detecte-as cedo.

Revisão de código. Mudanças de código relacionadas a e-mail merecem atenção extra. Um bug no código de e-mail afeta usuários direta e visivelmente.

Resposta a incidentes. Saiba o que fazer quando o e-mail dá errado. Quem pode parar uma campanha no meio do envio? Como você se comunica com os usuários afetados? Planeje antes de precisar.

Frequently asked questions

Qual é o erro de e-mail mais comum que você vê?

Personalização quebrada e envio para destinatários errados são os erros de maior impacto mais comuns. Eles são visíveis para os usuários e muitas vezes constrangedores. Má configuração de autenticação é o erro mais comum de baixa visibilidade — prejudica silenciosamente a entregabilidade sem sintomas óbvios.

Como evito enviar e-mails de teste para usuários de produção?

Use ambientes separados com listas de destinatários separadas. Implemente salvaguardas no código que impeçam envios de produção a partir de ambientes não de produção. Algumas equipes usam interceptação de e-mail em ambientes não de produção para capturar todo o e-mail de saída.

O que devo fazer se eu enviar um e-mail para as pessoas erradas?

Primeiro, pare quaisquer envios em andamento. Em seguida, avalie o impacto — que informação foi exposta? quem foi afetado? Comunique-se de forma transparente com os usuários afetados. Documente o incidente e implemente medidas preventivas. Para incidentes graves, envolva as equipes jurídica e de segurança.

Como sei se meus e-mails estão realmente sendo entregues?

Taxa de entrega (aceitos pelos servidores de recebimento) é um começo, mas não garante colocação na caixa de entrada. Monitore taxas de abertura em busca de quedas súbitas. Use testes com seed list para verificar a colocação real na caixa de entrada. Configure o Google Postmaster Tools para obter insights específicos do Gmail.

e_

Escrito pela equipe emailr

Construindo infraestrutura de email para desenvolvedores

Pronto para começar a enviar?

Obtenha sua chave API e envie seu primeiro email em menos de 5 minutos. Não é necessário cartão de crédito.