为什么“已接收:...”电子邮件标题不显示端口?

为什么“已接收:...”电子邮件标题不显示端口?

最近我遇到了一个问题,垃圾邮件的发件人是我自己地址。起初我以为这意味着我的密码被泄露了,误以为我的电子邮件服务器的 Received 标头的“by”子句中的“with esmtp (Exim 4.87)”意味着它是通过经过身份验证的连接发送的。我的电子邮件提供商很快纠正了我,传入的消息来自 MTA,而 MTA 在传递消息时不会进行身份验证。因此,它很容易(而且很可能)通过开放中继发送,因为 IP 地址全部列在 15 个或更多黑名单上。

当我从 Thunderbird 发送邮件时,我连接到端口 587,而该端口需要身份验证。如果我可以查看标头并看到与我的 ISP 服务器的连接在端口 587 上,那么我就会知道发件人已经通过了身份验证,并且如果它将我自己的地址作为其信封发件人,那么我就会知道我的密码已被泄露,对吗?好吧,我猜跟踪中的任何服务器都可以修改较早的标头,但在这些情况下,跟踪中没有任何其他服务器。即使有,也不清楚为什么服务器想要修改较早标头中给出的端口号。

我尝试询问电子邮件提供商是否可以将端口添加到“接收者”子句中,但没有得到有意义的答复。我搜索了一下,看看 sendmail 是否有这样做的选项,但一无所获。不过,我猜标题实际上告诉我他们使用的是 Exim 而不是 sendmail,而且链接显示了在 Exim 中配置标头内容的位置,尽管它没有说明如何在文中引用传入端口号。

但考虑到端口号似乎为处理来自欺骗发件人的垃圾邮件的人提供了一些非常有价值的信息,我想知道为什么它不默认包含在内。

答案1

端口号在“已接收:”行中没有用,因为存在用于电子邮件传输的标准端口,而使用备用端口实际上是不可能的。

如果您想知道某封邮件是否已由某个邮件程序验证,您可以通过检查接收该邮件时使用的协议,在“已接收:”行中找到此信息。该协议以“SMTP”开头,然后根据各种条件在开头和结尾添加扩展名。如果该邮件已通过验证,则其末尾将有一个“A”,如RFC 3848。 一个例子:

Received: from pool-70-20-60-215.man.east.myfairpoint.net (pool-70-20-60-215.man.east.myfairpoint.net [70.20.60.215]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.example.com (Postfix) with ESMTPSA id C540E956034; Wed, 27 Jul 2016 18:35:17 +0000 (UTC)

相关内容