我正在编写一个 python 程序来发送电子邮件,当尝试发送到 yopmail、hotmail 和其他一些主机时,服务器会关闭连接而没有发送任何消息。我尝试直接使用 netcat 连接,但发生了同样的事情。以下是交换的样子:
$ nc smtp.yopmail.com 25
220 mx.yopmail.com ESMTP ***
ehlo mx.myhost.com
250 SIZE 2048000
mail FROM:<[email protected]>
250 OK
rcpt TO:<[email protected]>
此时连接突然关闭。在其他主机上,比如我的 ISP,一切正常。我检查了黑名单,但我的 IP 没有列出。知道发生了什么吗?
编辑:我的 IP 未列入任何黑名单。我拥有 myhost.com,但我没有 SPF 记录。我会添加一个,并在记录传播后更新此帖子。
编辑2:添加了 SPF 后,电子邮件现在被接受,HotmailAuthentication-Results: hotmail.com; sender-id=pass
为电子邮件添加了标头。但是它被归类为垃圾邮件,但我想那是另一回事。感谢您的帮助。
答案1
很有可能这是他们的垃圾邮件对策开始发挥作用了。根据您连接的位置等,电子邮件服务器会出于各种不同的原因拒绝接受您的邮件。myhost.com 可能有一个 spf 记录,表示如果邮件来自某个地址,hotmail 应该只接受声称来自 myhost.com 的邮件。因此,从您的家庭网络连接进行连接将导致失败。或者,当他们的邮件服务器对您的 IP 进行反向查找时,它与发件人地址不匹配。
不同的提供商在接受邮件时会比其他提供商更挑剔。如果您认为情况并非如此,请使用更多信息更新您的答案(myhost.com 是您的服务器吗、您是否有 spf 记录、您的反向 DNS 设置是否正确等)。