Eu escrevi um software que opera uma lista de contatos não comerciais para clubes, onde o servidor envia e-mails administrativos para todo o clube. Os e-mails são recebidos Ok no Yahoo, Gmail e AOL, mas são silenciosamente jogados fora pelo Hotmail e Outlook. Eles não acabam na pasta de spam do destinatário e não são devolvidos - são literalmente apenas despejados.
Passei horas nisso e não estou chegando a lugar nenhum rápido. Alguma sugestão sobre como proceder e o que procurar a seguir? O que sei até agora é:
- Os e-mails passam SPF
- Os e-mails passam DKIM
- O nome do host da máquina de envio é
griffon.foo.org
, e isso termina comoReturn-Path
nos cabeçalhos abaixo (presumivelmente, o sendmail define o remetente do envelope como o nome do host). O IP de origem é identificado como1.2.3.4
, e uma pesquisa DNS PTR1.2.3.4
retornagriffon.foo.org
- Não há registro A para
griffon.foo.org
, e o registro A parafoo.org
retorna2.3.4.5
, não1.2.3.4
. É este o problema? From
Há uma pequena incompatibilidade entre o cabeçalho do corpo do e-mail e oReturn-Path
:From
é, em geral,[email protected]
Este é um novo servidor, enviando e-mails ocasionais de baixo volume, e posso garantir que ninguém jamais marcou um e-mail recebido como spam. mxtoolbox.com não aparece
1.2.3.4
em nenhuma lista negra e aparece2.3.4.5
em uma lista de 88 (ambos estão na mesma máquina)Os servidores da Microsoft aceitam os e-mails do sendmail e respondem que estão na fila para entrega. Em seguida, apenas os ignora.
Parece que pode ser (4), mas os registros MX foo.org
devem apontar para 2.3.4.5
, por motivos complexos. Alguma ideia? Anexei abaixo um conjunto de cabeçalhos recebidos no Yahoo. Obrigado.
From [email protected] Wed Mar 25 17:28:23 2015
X-Apparently-To: [email protected]; Wed, 25 Mar 2015 17:28:32 +0000
Return-Path: <[email protected]>
Received-SPF: pass (domain of griffon.foo.org designates 1.2.3.4 as permitted sender)
X-YMailISG: <CUT>
X-Originating-IP: [1.2.3.4]
Authentication-Results: mta1045.mail.ir2.yahoo.com from=foo.org; domainkeys=neutral (no sig); from=foo.org; dkim=pass (ok)
Received: from 127.0.0.1 (EHLO griffon.bar.com) (1.2.3.4)
by mta1045.mail.ir2.yahoo.com with SMTPS; Wed, 25 Mar 2015 17:28:32 +0000
Received: from griffon.foo.org (localhost.localdomain [127.0.0.1])
by griffon.bar.com (8.13.8/8.13.8) with ESMTP id t2PHSNVN016920;
Wed, 25 Mar 2015 17:28:24 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=foo.org;
s=default; t=1427304504;
bh=0TWfPqbvd2nyKtZkN+npokT1bvLtCD0MomG/Bd1zU8g=;
h=Date:To:From:Subject;
b=ZcSVHGuzxcBk8He2hzjT6t8gl9hT0cxUsGf7vNcsnF8S+OfNmZ+XuE240+v7JDNe+
IArMT87aIuLNIp8A1CMOelWvEm7KKdYWKoCy/CDfbe4mcEfu2kWNteai4/5yExPewv
gFV6OOYAv7uKYd44UjMhuWCZ8qqxD2WZROUeoN2E=
Received: (from me@localhost)
by griffon.foo.org (8.13.8/8.13.8/Submit) id t2PHSNSu016919;
Wed, 25 Mar 2015 17:28:23 GMT
Date: Wed, 25 Mar 2015 17:28:23 GMT
Message-Id: <[email protected]>
To: [email protected], [email protected], [email protected],
[email protected], [email protected]
From: [email protected]
Subject: Test all (31)
Content-Length: 14
Corrigi isso adicionando um novo
MX
registro de alto custo para o domínio em1.2.3.4
, que apontava para o servidor de e-mail de2.3.4.5
. Isso garante que o DNS reverso corresponda ao DNS direto. Esta é basicamente uma solução rápida para contornar o problema do sendmail abaixo.Descobri algumas coisas úteis sobre o Hotmail e o Outlook ao longo do caminho e o que causa o despejo de e-mails. No meu caso, o problema subjacente estava relacionado a como o sendmail se identifica, mas isso pode ser útil para qualquer pessoa que venha por aqui. Observe que o DKIM é irrelevante (você pode ser entregue e passar pelo teste de spam sem DKIM) e não precisei me registrar na Microsoft.
1 - sendmail define o SMTP 'MAIL FROM' para o usuário no hostname atual; ou seja [email protected] (isso é o que você vê no
Return-Path
)2 - o hotmail e o Outlook farão uma pesquisa reversa/PTR no endereço IP conectado e despejarão silenciosamente o e-mail se ele não retornar ao
MAIL FROM
nome de domínio3 - o hotmail/outlook fará uma pesquisa MX no servidor 'De' nomeado no último cabeçalho 'Recebido'. Se isso não corresponder ao
MAIL FROM
domínio, o e-mail será despejadoParece ser isso. (3) estava causando meu problema. sendmail usa
gethostbyname
para definir o nome 'De', embora use o nome do host atual para definirMAIL FROM
. Eu esperavagethostbyname
apenas fazer umaPTR
pesquisa e obter a resposta certa, mas estava retornando um FQDN antigo. Não sei por que - possivelmente problemas de cache - mas o novo registro MX corrige isso no momento.