为什么“Received:… by”电子邮件标题显示端口?

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

当我从Thunderbird发送邮件时,我在端口587上连接,并且该端口需要validation。 如果我可以查看头文件并看到与ISP服务器的连接是在端口587上,那么我会知道发件人已经过validation,如果它有我自己的地址作为信封,那么我就知道我的密码已经妥协了吧? 那么我猜想跟踪中的任何服务器都可以修改以前的头文件,但在这种情况下,跟踪中没有其他服务器。 即使存在,也不清楚为什么服务器要修改以前头文件中给出的端口号。

我尝试询问电子邮件提供商是否可以将端口添加到“已收到”条款,但没有得到有意义的回复。 我GOOGLE了一下,看看sendmail是否有这样做的select,但没有任何地方。 但是,我猜这个头文件实际上告诉我他们使用的是Exim而不是sendmail, 这个链接显示了Exim中头文件内容的configuration,虽然没有说明如何在文本中引用传入的端口号。

但是鉴于端口号似乎为任何人处理欺骗发件人的垃圾邮件提供了一些非常有价值的信息,我想知道为什么它不是默认包含的。

在Received:行中,端口号不会有用,因为有用于电子邮件传输的标准端口,并且使用备用端口是不可能的。

如果你想知道邮件是否被邮件authentication过,你可以通过检查接收到的协议在“收件人:”行中find这个信息。 这从“SMTP”开始,然后根据各种标准将扩展添加到开始和结束。 如果消息已经过authentication,则最终将有一个“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)