IPv4 邮件与 DKIM、SPF 等配合良好。我可以毫无问题地发送到 Gmail,并且所有验证都通过。在对 Hotmail/Outlook 进行验证后,它们也可以正常工作。
我可以通过我的服务器从 IPv6 防火墙一侧的另一台服务器发送 IPv6 邮件,没有任何问题(使用 Python 加密的 SMTP 库)。我查看了邮件头,发现所有连接都是 IPv6。我的 IPv6 地址有反向 DNS,指向 mail.example.org,并且已经验证过多次。
由于我为我的域名添加了 AAAA 记录,当我从我的 Gmail 帐户发送邮件时,邮件发送后大约有 30-45 秒的延迟(不是撤消延迟...这是在那之后),邮件最终到达 IPv4。如果我删除 AAAA 记录,邮件会立即发送。
在我看来,这一切都表明尝试通过 IPv6 验证 MX 记录失败,并出于某种原因回退到 IPv4。我没有在我的 exim 服务器上看到任何 IPv6 连接尝试。似乎远程邮件服务器在没有任何邮件服务器连接的情况下进行 DNS 查找并根据此做出决策
从远程 IPv6 主机,我可以使用 openssl 手动连接到 587(显式 TLS)和 465(隐式 TLS),并使用以下命令查看正确的证书:
openssl s_client -showcerts -servername mail.example.org -starttls smtp -connect mail.example.org:587
openssl s_client -showcerts -servername mail.example.org -connect mail.example.org:465
我还可以使用从这里获得的以下命令手动发送电子邮件: https://www.stevenrombauts.be/2018/12/test-smtp-with-telnet-or-openssl/
MAIL FROM: [email protected]
rcpt to: [email protected]
DATA
From: [email protected]
Subject: Test message!
Hi,
This is a test message!
Best,
User!
Mxtoolbox 对 IPv6 的支持并不好,似乎只会检查 AAAA 记录,并且不提供 IPv6 上的 smtp 测试。其他地方似乎有损坏的实现(我认为),表明证书有问题,但我已经使用上述命令验证了这一点。
有想法吗?
是的,IPv4 可以工作,但我希望 IPv6 也能工作,即使只是为了自我满足。