Como rastrear e-mails desaparecidos?

2

Eu tenho um email gerado por um CMS que vai para duas pessoas em hosts diferentes. A pessoa no host A sempre recebe o email. O segundo, no host B, nunca faz.

O CMS está no servidor no host A. As duas pessoas podem enviar e receber emails entre si sem problemas. Ele checou seu filtro de spam e eles não estão lá. Eu testei enviando o email para dois outros hosts sem nenhum problema.

Houve um problema com o campo "De" estando em branco, mas consertei isso e ele ainda não recebe o e-mail.

Qual é a melhor maneira de começar a rastrear por que o cara no host B nunca recebe o e-mail gerado pelo CMS?

    
por Emily 30.10.2009 / 21:28

3 respostas

3

Existem muitos motivos pelos quais um email pode ser bloqueado ou rejeitado. No entanto, o email é projetado de uma forma que não deve simplesmente desaparecer. Ele deve ser entregue em uma caixa de correio, em uma fila ou devolvido ao remetente. Os logs do host A e do host B MTA devem mostrar a tentativa de entrega e o resultado da tentativa. Eu estou supondo que você provavelmente não tem acesso ao host b MTA logs embora. Então você precisa descobrir como solucionar isso ao seu lado.

Os aplicativos da Web podem ser um pouco complicados, embora alguns deles enviem e-mails usando um aplicativo ou biblioteca smtp simples que tenta, cegamente, entregar um e-mail em uma abordagem de melhor esforço. Estes nem sempre têm filas para lidar com problemas de entrega. Algo tão simples quanto a listagem em cinza pode causar falhas de entrega com esses itens.

O pior é que você pode fazer uma captura de pacotes para ver como é a conversa entre o host A e o host B. O SMTP é enviado em texto não criptografado para que o WireShark possa ler facilmente a troca entre os servidores.

Se você tiver mais informações sobre como o CMS tenta enviar e-mails e qual aplicativo MTA / smtp está usando, alguém provavelmente pode apontar para os arquivos de log que você deve examinar. Mas no Linux /var/log/mail.log é um bom lugar para começar.

    
por 30.10.2009 / 22:14
2

Você não aprenderá nada a partir de uma captura de pacote, a menos que tenha um MTA escrito por você mesmo que precise de depuração.

Provavelmente, o problema tem algo a ver com os hosts downstream. Quais logs você tem acesso? Tente procurar no maillog do MTA no sistema CMS e em qualquer sistema MTA secundário acessível a você que seja usado para retransmissão SMTP. Você recebe um status 250 OK para entrega do email ao host remoto B? Se assim for, você entregou a mensagem com sucesso. Se não, precisamos de mais detalhes sobre qual foi o erro no seu log para lhe contar mais.

O problema pode ser que o próximo salto não goste do seu email. Ele pode ter cabeçalhos inválidos, códigos MIME desfeitos, etc., que disparam uma rejeição sem um salto, porque o email é considerado possivelmente malicioso se não seguir os RFCs relevantes para o formato de email.

Se você estiver recebendo um tipo de status "250 OK Enviado", a única coisa que você pode fazer é fazer com que o cliente do host B fale com o provedor de serviços, provedor de serviços de Internet ou TI departamento e perguntar o que está acontecendo com seu e-mail e por quê. Apenas os registros do site remoto contarão a história quando eles não estiverem enviando o email de volta para você.

    
por 30.10.2009 / 23:56
2

Você está enviando e-mails através de um servidor de e-mail ou apenas de um serviço SMTP? Quando os e-mails são enviados de aplicativos (como o seu CMS), a escolha usual para entregar os e-mails é

  1. Servidor de e-mail na rede (Exchange, outros)
  2. Um serviço SMTP (IIS SMTP, outros)

Aqui está o problema. Se o aplicativo (seu CMS) estiver na mesma rede que um servidor de e-mail, essa é a escolha preferida, pois o servidor de e-mail é a agência postal desiginada para esse domínio. Se, por outro lado, o aplicativo não tiver acesso para retransmitir emails através de um servidor de email e um serviço SMTP for usado, observe o seguinte

Se o SMTP enviar diretamente para usuários externos, será necessário verificar se o IP (público) está desmarcado de listas negras, verificar se os registros PTR corretos estão configurados para DNS reverso por outros servidores de e-mail desligue o relé.

No seu caso, se a pessoa no HOST A estiver na mesma rede que o CMS, ela receberá o e-mail. Se o HOST B estiver em uma rede separada, talvez o servidor de e-mails HOST B esteja fazendo uma pesquisa inversa e seja incapaz de determinar se o SMTP é um servidor de e-mail legítimo. Você também precisa ter a configuração correta do MX.

Se ambos os usuários estiverem na mesma rede, pode ser que o remetente (do endereço, por exemplo, [email protected]) não tenha permissão para enviar para esse usuário. Você não pode pedir ao seu administrador de e-mail para colocar um traço no e-mail? (isso é se você estiver enviando de um servidor de email.

    
por 31.10.2009 / 04:38

Tags