Pergunta

Nossa aplicação web envia e-mails. Nós temos muitos usuários, e obter lotes de rejeições. Por exemplo, o usuário muda de empresa e sua empresa de e-mail não é mais válido.

Para saltos, eu arquivo de log SMTP parse com analisador de log. Os registros vêm de servidor Microsoft SMTP.

Alguns saltos são grandes, como 550+#5.1.0+Address+rejected+user@domain.com. Há user@domain.com no salto.

Mas alguns não têm e-mail na mensagem de erro, como 550+No+such+recipient.

Eu criei script simples de Ruby que analisa logs (analisador de log usa) para encontrar qual o correio causado algo como 550+No+such+recipient.

Eu apenas estou surpreso que eu não poderia encontrar uma ferramenta que faz isso. Eu encontrei ferramentas como o Zabbix e Splunk para análise de log, mas eles se parecem um exagero para tal tarefa simples.

Qualquer um sabe de uma ferramenta que analisa logs de SMTP, encontra saltos e e-mails que lhes causam?

Foi útil?

Solução

Este artigo é exatamente o que você está procurando. Ele é baseado no grande ferramenta analisador log .

analisador Log é um poderoso e versátil ferramenta que fornece consulta universal acesso a dados baseados em texto, como log arquivos, arquivos XML e arquivos CSV, como bem como fontes de dados chave sobre o sistema operacional Windows®, tais como a Log evento, o registro, o arquivo sistema, e Active Directory. Vocês dizer Log Parser que informação você precisa e como você deseja que ele processado. Os resultados da sua consulta pode ser custom-formatado na saída de texto com base, ou eles podem ser mantidos a mais alvos especiais como SQL, SYSLOG, ou um gráfico. A maioria dos softwares é projetado para realizar um número limitado de tarefas específicas. Log Parser é diferente ... o número de maneiras que puder ser utilizado está limitado apenas pelas necessidades e imaginação do usuário. o mundo é o seu banco de dados com Log Analisador.

Outras dicas

Tanto quanto eu posso ver, a análise do arquivo de log é realmente útil apenas para detectar mails que são rejeitados no nível da sessão SMTP. E sobre saltos que ocorrem após o remoto MTA aceitou uma mensagem para entrega, mas posteriormente não entregar isso?

Use o seguinte configurado para detectar e classificar todas as rejeições após o parto para o MTA remoto.

  1. Todos os mails de saída é dado um único caminho de regresso cabeçalho que, quando decodificado , identifica o endereço de email do destinatário e do mailing particular.

  2. Um Apache James servidor que recebe e-mails devolvidos para o endereço-path retornado.

  3. A mailet personalizado, desenvolvido em Java e executado dentro Apache James que decodifica o para o endereço, envia o texto de e-mail para boogietools saltar estúdio para classificação do tipo de salto e, em seguida, persistir os resultados para o nosso banco de dados.

Ele funciona muito, muito bem. Somos capazes de detectar retornos graves permanentes e saltos macios transitórios, que são ainda classificados em tipos de rejeição muito granulares, como rejeições de spam, fora do escritório responde etc.

Você não quer analisar os logs para tentar identificar saltos. Você terá tanto falsos negativos e falsos positivos, se você só olhar para logs.

Bounces pode ser gerada a jusante do servidor você entregar a. Eles vão olhar como entregas de sucesso em seus logs do servidor de saída.

O jogo padrão ingênuo para salta em registros de entrada (a partir do remetente nulo, para um de seus endereços VERP-ED) será impreciso. Existem algumas razões pelas quais:

  • Haverá avisos de atraso misturados com saltos de falha reais.
  • A maioria Out-of-Office eo autoresponders similares usam o remetente nulo para evitar a síndrome Battlin-bots.
  • Da mesma forma, os sistemas de desafio-resposta (como * cuspir * boxbe.com) tendem a usar o remetente nulo.
  • Seus endereços de remetentes VERP-ed, se forem persistentes por beneficiário, vai ser colhido por spammers e voltar tanto como alvos de spam ou backscatter.

Então, infelizmente, a única maneira confiável de fazer isso é examinar as mensagens de salto próprios. A maioria deles vai ter um "/ entrega-status report" parte MIME como por RFC1894, e dependendo do idioma de sua escolha, provavelmente há bibliotecas ou módulos para ajudar com outros formatos de rejeição. O único que eu tenho experiência direta com o módulo Perl Mail :: DeliveryStatus :: BounceParser, que funciona bem o suficiente.

Gosto LOGPARSER. Quando eu preciso analisar para somthing muito específico ou personalizado ou usando expressões regulares, eu uso biterScripting. Eles realmente têm alguns scripts de exemplo que eu usei para começar. Uma delas é em http://www.biterscripting.com/Download/SS_WebLogParser.txt .

I base um programa contra salto sobre este post, apenas para descobrir mais tarde que este método não faz realmente trabalho para remetentes de grandes volumes, pois os logs SMTP não estão em ordem sequencial. Há mais sobre isso no meu blog: Email Bounce Detecção em SMTP Logs e por isso é impossível .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top