Email transacional vs marketing: por que separar os envios
Por que separar email transacional e de marketing em streams, IPs e subdomínios diferentes, e como fazer isso sem quebrar autenticação e DMARC.
5 min de leitura
Diferença entre hard bounce e soft bounce, como ler códigos SMTP e enhanced status codes e quando adicionar um endereço à lista de supressão.
Time PidgelyPublicado em 5 min de leituraVersão em Markdown

Hard bounce é uma falha de entrega permanente: o endereço não existe, o domínio não recebe email ou o servidor recusou a mensagem de forma definitiva. Soft bounce é uma falha temporária, como caixa cheia, servidor indisponível ou limitação de volume, e a mensagem pode ser tentada de novo mais tarde. A regra prática é suprimir hard bounces na primeira ocorrência e suprimir soft bounces apenas quando se repetem por vários dias sem nenhuma entrega bem-sucedida.
Existem dois momentos em que um email pode "voltar":
RCPT TO ou ao final do DATA com um código de erro. O seu MTA sabe na hora.250, mas não conseguiu entregar depois (por exemplo, porque repassou para outro servidor interno). Ele então envia uma notificação de falha (DSN, definida na RFC 3464) para o endereço do Return-Path.Os dois casos precisam ser tratados. O primeiro aparece nos logs do MTA; o segundo chega como email e precisa ser lido e interpretado, o que é o papel do tratamento de bounces com VERP.
Uma resposta tem duas partes: o código básico da RFC 5321 e o enhanced status code da RFC 3463.
550 5.1.1 <joao@example.com.br>: Recipient address rejected: User unknown550: código básico. O primeiro dígito diz a classe: 2 sucesso, 4 falha temporária, 5 falha permanente.5.1.1: enhanced status code no formato classe.assunto.detalhe. Classe 5 permanente, 4 temporária. Assunto 1 endereçamento, 2 caixa postal, 3 sistema de email, 4 rede e roteamento, 5 protocolo, 6 conteúdo, 7 segurança e política.| Resposta | Significado | Ação |
|---|---|---|
550 5.1.1 | Usuário inexistente | Suprimir imediatamente |
550 5.1.2 / 5.1.10 | Domínio inexistente ou sem MX | Suprimir imediatamente |
552 5.2.2 | Caixa cheia (tratada como permanente pelo servidor) | Tratar como soft na primeira vez; suprimir se repetir |
554 5.2.1 | Caixa desativada | Suprimir |
550 5.7.1 | Rejeição por política | Não suprimir; investigar |
550 5.7.26 | Falha de autenticação (Gmail) | Não suprimir; corrigir SPF/DKIM/DMARC |
| Resposta | Significado | Ação |
|---|---|---|
421 4.7.0 | Tente mais tarde, conexão encerrada | Nova tentativa com backoff |
450 4.2.1 | Caixa temporariamente indisponível | Nova tentativa |
452 4.2.2 | Caixa cheia | Nova tentativa; suprimir se persistir |
451 4.3.0 | Erro local no servidor | Nova tentativa |
421 4.7.28 | Taxa incomum de mensagens (Gmail) | Reduzir volume para o provedor |
Muita gente classifica "todo 5xx é hard bounce" e suprime. Isso é um erro. Um 550 5.7.1 com o texto "message rejected due to reputation" não diz nada sobre o endereço do destinatário: diz que o seu envio foi bloqueado. Suprimir esses endereços:
A classificação correta olha o enhanced status code e o texto. Bloqueios por política devem gerar alerta para o time, não supressão.
Quando o bounce é assíncrono, chega uma mensagem multipart/report com um bloco message/delivery-status:
Content-Type: multipart/report; report-type=delivery-status;
boundary="limite123"
--limite123
Content-Type: text/plain
Não foi possível entregar a mensagem para joao@example.com.br.
--limite123
Content-Type: message/delivery-status
Reporting-MTA: dns; mx.example.com.br
Final-Recipient: rfc822; joao@example.com.br
Action: failed
Status: 5.1.1
Diagnostic-Code: smtp; 550 5.1.1 User unknown
--limite123--Os campos que importam são Action (failed é falha definitiva; delayed é só aviso), Status e Final-Recipient. Nem todo servidor gera DSN bem formada, então o parser precisa de heurísticas para textos livres.
Um esquema típico para falhas temporárias:
4.7.x, desacelere para todo o domínio de destino, não só para aquele endereço.A lista de supressão é o registro de endereços para os quais você não deve mais enviar. Ela é consultada antes de cada envio e deve conter:
Boas práticas:
Provedores interpretam muitos hard bounces como sinal de lista comprada, raspada ou mal cuidada. Endereços abandonados podem ser reciclados como spam traps. Continuar enviando para endereços que falham é uma das formas mais rápidas de cair no spam ou ser bloqueado. As boas práticas do M3AAWG tratam a remoção de endereços inválidos como requisito básico de higiene de lista.
5xx como hard bounce, incluindo bloqueios por política.5.7.x.A Pidgely processa respostas síncronas e DSNs com VERP, classifica cada falha pelo enhanced status code, alimenta listas de supressão automaticamente e envia eventos de bounce por webhook, para que a sua aplicação saiba o que aconteceu com cada endereço sem precisar ler logs de MTA.
Hard bounce é uma falha permanente, como endereço inexistente ou domínio sem servidor de email; o endereço deve ser suprimido na hora. Soft bounce é uma falha temporária, como caixa cheia ou limitação de volume, e a mensagem pode ser tentada de novo.
Pelo código SMTP e pelo enhanced status code. Respostas 5xx com status 5.x.x são permanentes; respostas 4xx com status 4.x.x são temporárias. Mas leia o código completo: 5.7.x costuma indicar bloqueio por política, não endereço inválido.
Não há número padrão. Uma regra comum é suprimir quando o mesmo endereço falha temporariamente em vários envios ao longo de alguns dias, sem nenhuma entrega bem-sucedida no meio.
Normalmente não. O 5.7.1 indica rejeição por política ou reputação do remetente, não um endereço inexistente. Suprimir esconderia um problema seu; o certo é investigar a causa.
Time Pidgely
Publicado em
Construímos o Pidgely, a API de email que leva você à caixa de entrada. Escrevemos sobre o que aprendemos entregando emails, citando os padrões e as diretrizes dos provedores por trás de cada afirmação.
Por que separar email transacional e de marketing em streams, IPs e subdomínios diferentes, e como fazer isso sem quebrar autenticação e DMARC.
5 min de leitura
Como funcionam os feedback loops no formato ARF (RFC 5965), como medir a taxa de reclamação e o que fazer para mantê-la abaixo do limite do Gmail.
5 min de leitura
IP compartilhado ou dedicado para envio de email? Veja como volume, regularidade e controle de reputação definem a melhor escolha, com prós e contras.
5 min de leitura