Qual é a melhor maneira de analisar os cabeçalhos dos emails devolvidos (não entregues) que são enviados de volta ao meu servidor e determinar se é um retorno suave ou difícil?
Só envio emails de aceitação para meus usuários, mas ocasionalmente alguns endereços de email ficam obsoletos. Quando um e-mail retorna ao meu servidor, eu gostaria de descobrir por que ele retornou (suave / difícil). Depois, posso lidar com isso adequadamente no meu banco de dados e / ou sinalizar o usuário para atualizar seu email quando o próximo logon for feito.
Estou usando o Ubuntu e o Postfix. Eu implementei o VERP com alias e alias virtuais. Portanto, os e-mails devolvidos têm um caminho de retorno de [email protected] , e eu posso canalizá-los para um script.
Agora que tenho a configuração do VERP, sei para quem o email original foi enviado, mas preciso analisar os cabeçalhos de email retornados para descobrir se é um salto suave ou forte.
Qual a melhor forma de lidar com isto? Pelo que entendi, nem todos os servidores de correio jogam pelas mesmas regras, e os cabeçalhos podem ter uma variedade de formatos. Existe algum projeto de código aberto que monitore esses tipos de coisas? Algo simples que eu possa implementar que categorize a maioria dos saltos corretamente?
Estou tentando proteger a reputação do meu servidor de email, então qualquer ajuda é muito apreciada!
fonte
grep " dsn=5." /var/log/mail.log | pcregrep -o1 " to=<(.+?)>" | sort | uniq -c
Geralmente existem dois tipos de rejeições
O primeiro caso já foi coberto pela excelente resposta de Esa Jokinen acima. Sua melhor aposta é analisar o maillog.
O segundo caso foi um caso especial de rejeições. O cenário de exemplo:
Aqui, o exemplo do segundo tipo rejeita o email. Existe uma regra de encaminhamento do servidor de e-mail do Yahoo [email protected] -> [email protected] . Infelizmente o servidor de email do example.net rejeita a mensagem :(
Nesse caso, seu único método é analisar a mensagem de devolução. Infelizmente, não há formato de rejeição padrão, portanto, você deve analisar o corpo e determinar a rejeição causada.
A lista de verificação de recursos da análise de devolução do postfix:
Para o segundo recurso, você pode pesquisar no Google alguma mensagem de rejeição comum. O exemplo é este bounce-regex-list.xml de Jakub Liska .
Esa Jokinen fez uma boa observação no comentário abaixo sobre esses dois tipos de rejeição. Se seu objetivo é manter a reputação do servidor, a negociação do primeiro tipo de rejeição deve ser suficiente. O segundo salto foi sobre como limpar suas listas. Portanto, o e-mail morto deve ser apagado, liberando alguns recursos em seu servidor.
Alguns gerenciadores de listas de discussão, como PHPlist e Mailman, também lidam com esse problema de rejeição ao analisar o corpo do email, pois eles não têm recursos para analisar o maillog.
fonte