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
O que é VERP, como usar Return-Path único por mensagem para tratar bounces, como interpretar DSNs (RFC 3464) e separar auto-respostas de bounces reais.
Time PidgelyPublicado em 5 min de leituraVersão em Markdown

VERP (Variable Envelope Return Path) é a técnica de gerar um endereço de Return-Path único para cada mensagem, como b+7h3k9q@bounces.example.com.br, de forma que qualquer notificação de falha enviada para esse endereço identifique automaticamente o envio e o destinatário originais. Com isso, o tratamento de bounces deixa de depender de interpretar o texto livre das mensagens de erro para descobrir quem falhou: o endereço de destino do bounce já responde. O conteúdo da DSN (RFC 3464) continua sendo usado para saber o motivo da falha.
Existem bounces síncronos (o servidor de destino rejeita durante a conexão SMTP e o seu MTA registra) e assíncronos (o servidor aceita, tenta entregar internamente, falha e envia um email de aviso para o Return-Path). O segundo tipo é o difícil:
Se todos os seus envios usam o mesmo Return-Path (bounces@example.com.br), você precisa extrair o destinatário do corpo do aviso, o que falha com frequência. Com VERP, o endereço de destino já carrega a resposta.
A proposta original do VERP codificava o destinatário no próprio endereço:
bounces-joao=example.com.br@bounces.example.netHoje é mais comum usar um token opaco que referencia o envio no seu banco de dados:
b+7h3k9q2m@bounces.example.com.brO token opaco tem vantagens: não expõe o email do destinatário, não sofre com caracteres especiais e pode incluir uma verificação (HMAC curto) para descartar bounces forjados.
joao@example.com.br.7h3k9q2m.MAIL FROM:<b+7h3k9q2m@bounces.example.com.br>.250), mas depois não consegue entregar.b+7h3k9q2m@bounces.example.com.br.bounces.example.com.br recebe, extrai o token, encontra o envio e registra o bounce.O subdomínio de bounces precisa receber email e autorizar o envio:
bounces.example.com.br. MX 10 inbound.bounces.example.com.br.
bounces.example.com.br. TXT "v=spf1 ip4:203.0.113.0/24 -all"Como o SPF é verificado no domínio do Return-Path (bounces.example.com.br) e ele compartilha o domínio organizacional com o From (example.com.br), o SPF alinha no modo relaxado do DMARC. A parte variável fica antes do @ e não afeta nada disso.
Uma DSN bem formada é uma mensagem multipart/report com três partes: explicação legível, status por destinatário e a mensagem original (ou só os headers).
From: Mail Delivery System <MAILER-DAEMON@mx.example.org>
To: b+7h3k9q2m@bounces.example.com.br
Content-Type: multipart/report; report-type=delivery-status; boundary="x"
--x
Content-Type: text/plain; charset=utf-8
Sua mensagem não pôde ser entregue.
--x
Content-Type: message/delivery-status
Reporting-MTA: dns; mx.example.org
Arrival-Date: Mon, 12 Oct 2026 10:15:02 -0300
Final-Recipient: rfc822; joao@example.org
Original-Recipient: rfc822; joao@example.com.br
Action: failed
Status: 5.1.1
Diagnostic-Code: smtp; 550 5.1.1 No such user
--x
Content-Type: text/rfc822-headers
Message-ID: <a1b2c3@example.com.br>
...
--x--Os campos mais úteis:
Action: failed (falha definitiva), delayed (ainda tentando; não é bounce), delivered, relayed, expanded.Status: enhanced status code (RFC 3463). 5.x.x é permanente; 4.x.x é temporário.Final-Recipient e Original-Recipient: o endereço que falhou e o endereço que você usou originalmente; podem ser diferentes por causa de alias ou encaminhamento.Diagnostic-Code: a resposta textual do servidor final.Para classificar, use o Status como base e o Diagnostic-Code para refinar. Um 5.7.x com texto sobre reputação ou política é bloqueio do remetente, não endereço inválido, e não deve suprimir o destinatário.
Nem tudo que chega no endereço de bounces é bounce. Mensagens de férias, "mudei de empresa" e confirmações de sistemas de ticket também aparecem. Suprimir esses endereços seria um erro.
Sinais de que é um bounce real:
MAIL FROM:<>. A RFC 5321 exige o envelope vazio em notificações de falha para evitar loops.Content-Type: multipart/report; report-type=delivery-status.Action: failed e Status: 5.x.x.Sinais de que é auto-resposta:
Auto-Submitted: auto-replied (RFC 3834).X-Autoreply, X-Autorespond ou Precedence: auto_reply, usados por alguns sistemas.Auto-respostas devem ser registradas (podem ser úteis para o time de suporte) e descartadas do fluxo de supressão.
Alguns servidores enviam avisos em texto livre. Para esses:
550, 5.1.1, user unknown, mailbox unavailable, caixa postal inexistente).O endereço de bounces é público e pode receber lixo ou bounces forjados (backscatter):
Action: delayed como bounce.A Pidgely usa VERP com token assinado em um subdomínio de return-path por domínio verificado, interpreta DSNs e respostas síncronas, separa auto-respostas, alimenta a lista de supressão e entrega cada bounce como evento de webhook assinado para a sua aplicação.
VERP (Variable Envelope Return Path) é a técnica de usar um endereço de Return-Path diferente para cada mensagem ou destinatário. Quando o bounce chega, o próprio endereço diz a qual envio ele se refere, sem precisar interpretar o conteúdo.
Não, desde que o domínio do Return-Path seja um subdomínio seu com SPF configurado. A parte variável fica antes do @, então o domínio verificado pelo SPF continua o mesmo e alinha com o From no modo relaxado.
Bounces de verdade chegam com remetente vazio no envelope (MAIL FROM:<>) e geralmente em multipart/report com report-type=delivery-status. Auto-respostas costumam ter o header Auto-Submitted: auto-replied, definido na RFC 3834, e não devem gerar supressão.
Sim. Os logs cobrem rejeições durante a conexão, mas muitos bounces são assíncronos: o servidor aceita com 250 e só depois avisa da falha por email. Sem VERP, associar esse aviso ao envio original é frágil.
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
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.
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