如何读取邮件头中的“已接收”字段?

如何读取邮件头中的“已接收”字段?

以下是电子邮件标题的示例(仅是收到的部分):

Delivered-To: [email protected]
Received: by 10.79.29.73 with SMTP id d70csp1033542ivd;
        Sun, 10 Apr 2016 13:13:50 -0700 (PDT)
X-Received: by 10.28.85.137 with SMTP id j131mr14088045wmb.15.1460319230220;
        Sun, 10 Apr 2016 13:13:50 -0700 (PDT)
Return-Path: <[email protected]>
Received: from libri.sur5r.net (libri.sur5r.net. [217.8.49.41])
        by mx.google.com with ESMTPS id l10si24947537wjx.231.2016.04.10.13.13.49
        for <[email protected]>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Sun, 10 Apr 2016 13:13:50 -0700 (PDT)
Received-SPF: pass (google.com: domain of [email protected] designates 217.8.49.41 as permitted sender) client-ip=217.8.49.41;
Authentication-Results: mx.google.com;
       spf=pass (google.com: domain of [email protected] designates 217.8.49.41 as permitted sender) [email protected]
Received: from samsa.sur5r.net (samsa.hd.sur5r.net [2001:470:1f15:53:21c:bfff:fec3:a0bb])
  (AUTH: PLAIN samsa, TLS: TLSv1/SSLv3,256bits,DHE-RSA-AES256-GCM-SHA384)
  by libri.sur5r.net with ESMTPSA; Sun, 10 Apr 2016 22:13:49 +0200
  id 000000000000000B.570AB3FD.00004739
Received: from samsa.sur5r.net (localhost [127.0.0.1])
    by samsa.sur5r.net (Postfix) with ESMTP id 0B09910A113D;
    Sun, 10 Apr 2016 22:13:47 +0200 (CEST)

如您所见,它包含大量信息。我知道这表示从发送者到接收者的路由,但我真的不知道如何读取此标头。有人可以根据上述信息解释消息实际发生了什么吗?为什么第一个Received:是 127.0.0.1?它不应该是某个公共 IP 地址吗?我怎么知道该消息是垃圾邮件还是以某种方式伪造的?

答案1

如果消息在同一台计算机上的两个不同软件实体之间传输,则第一个地址(或任何地址)可能是本地主机(127.0.0.1)。

在这种情况下,第一个Received:标题显示邮件已传送至 ​​和从samsa.sur5r.net

在没有其他信息的情况下,我会假设(人类)发送者已登录到该计算机并且他的 MUA(电子邮件客户端)将消息传递给本地运行的 MTA。

对于运行本地 MTA(例如 Sendmail 或 Postfix)的类 Unix 系统来说,这并不罕见 - 本地 MUA 将发送到本地 MTA,然后本地 MTA 会将消息传递到通往目的地的下一个 MTA。

如果电子邮件来自邮件列表,则列表服务器可能与其 MTA 位于同一位置,因此配置为通过本地主机发送其消息。

在其他情况下,当邮件在同一服务器上的两个 MTA 之间传输时,您也可能会看到 localhost。防火墙或垃圾邮件过滤器可能与 MTA 位于同一位置。或者最后一跳 MTA 可能与目标 IMAP 服务器位于同一位置。

相关内容