1. 如何查看信头?

示例邮件在网易邮箱上的显示效果

上面给出的是一封mailabc.cn发给网易163邮箱的测试邮件。网易邮箱读信页面给用户展示的信息只有发件人、收件人、主题、发信时间、邮件正文等。但是如果尝试单击“更多” – “查看信头”(如下图所示),就可以发现原来信头里还有那么多信息。

163邮箱查看信头方法

下面就是展示出来的信头内容,看着似乎非常复杂(实际一点也不简单😄)。

163邮箱查看信头显示内容

通过网页邮箱、邮件客户端(如网易邮箱大师、Foxmail等)均可以查看邮件信头。

2. 信头详细解析

为了便于分析,复制上面信息,展示如下:

Received: from mailabc.cn (unknown [124.221.166.127])
  by gzga-mx-mta-g1-6 (Coremail) with SMTP id _____wBH5xRMAQFmAzI2Ag--.24848S2;
  Mon, 25 Mar 2024 12:45:00 +0800 (CST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=mailabc.cn; s=dkim; h=Received:Date:From:To:Subject:
  Content-Type:MIME-Version:Message-ID; bh=u1bnFmVtzdAeVZ2afeXyEnM
  Ns4aUQjMDjQnsu5zkeds=; b=Jk7hVIFXExhLitRylf/MmzlWqB4Lf+zq+Y7/+Pa
  ZGnCkKMNcTjs3DAwcr99vgTlMaVXhKMusDGuC7OVUFAPMyFlnlXbWyXgR/SNdP2Y
  DmpA2TWnJ260aNsgx4a56sR4RSrMBCZG0hZQZ3jeoGdIgI1C7sXlLvgAvouWqSvp
  F3kw=
Received: from t1$mailabc.cn ( [182.32.31.121] ) by
 ajax-webmail-VM-4-12-centos (Coremail) ; Mon, 25 Mar 2024 12:45:00 +0800
 (GMT+08:00)
X-Originating-IP: [182.32.31.121]
Date: Mon, 25 Mar 2024 12:45:00 +0800 (GMT+08:00)
X-CM-HeaderCharset: UTF-8
From: t1@mailabc.cn
To: isad00@163.com
Subject: =?UTF-8?Q?DKIM=E6=B5=8B=E8=AF=951?=
X-Priority: 3
X-Mailer: Coremail Webmail Server Version 2023.4-cmXT6 build
 20231205(37e20f0e) Copyright (c) 2002-2024 www.mailtech.cn
 mispb-c00420f3-29cf-4a45-b364-a6f5ca683ebd-demokey.cc
Content-Type: multipart/alternative; 
  boundary="----=_Part_17_1763428915.1711341900441"
MIME-Version: 1.0
Message-ID: <1c322528.2.18e73ed1299.Coremail.t1@mailabc.cn>
X-Coremail-Locale: zh_CN
X-CM-TRANSID:AQAAfwAnjGZMAQFmBgAAAA--.0W
X-CM-SenderInfo: zwr6ztxloduugofq/1tbiAQAHCmYAyVEAAQABsy
Authentication-Results: gzga-mx-mta-g1-6; spf=pass smtp.mail=t1@mailab
  c.cn; dkim=pass header.i=@mailabc.cn
X-Coremail-Antispam: 1Uf129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7v73
  VFW2AGmfu7jjvjm3AaLaJ3UbIYCTnIWIevJa73UjIFyTuYvjxU3tkuUUUUU

让我们尝试逐行分析。

2.1 Received:

Received: from mailabc.cn (unknown [124.221.166.127])
  by gzga-mx-mta-g1-6 (Coremail) with SMTP id _____wBH5xRMAQFmAzI2Ag--.24848S2;
  Mon, 25 Mar 2024 12:45:00 +0800 (CST)
Received: from t1$mailabc.cn ( [182.32.31.121] ) by
 ajax-webmail-VM-4-12-centos (Coremail) ; Mon, 25 Mar 2024 12:45:00 +0800
 (GMT+08:00)

Received表示这封邮件的路由信息。每经过一个转发节点(如邮件服务器、反垃圾网关、中转服务器等),信头中会插入一条Received信息。这里包括服务器的名称、服务器IP、使用的协议、时间等信息。

Received信息需要从下往上看,最下面一条表示初始的发信服务器信息(或者发信终端信息);最上面一条表示收件方最后一跳服务器信息,从“gzga-mx-mta-g1-6 (Coremail)”反馈的信息来看,163.com的服务器使用的是Coremail邮件系统。

一封邮件从A组织发给B组织可能会经过多个节点

2.2 DKIM-Signature:

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=mailabc.cn; s=dkim; h=Received:Date:From:To:Subject:
  Content-Type:MIME-Version:Message-ID; bh=u1bnFmVtzdAeVZ2afeXyEnM
  Ns4aUQjMDjQnsu5zkeds=; b=Jk7hVIFXExhLitRylf/MmzlWqB4Lf+zq+Y7/+Pa
  ZGnCkKMNcTjs3DAwcr99vgTlMaVXhKMusDGuC7OVUFAPMyFlnlXbWyXgR/SNdP2Y
  DmpA2TWnJ260aNsgx4a56sR4RSrMBCZG0hZQZ3jeoGdIgI1C7sXlLvgAvouWqSvp
  F3kw=

DKIM-Signature 表示发信方启用了DKIM签名,这里是相关签名信息。只有在发信方启用了DKIM的情况下,才会在信头中包含这部分信息。

2.3 X-Originating-IP:

X-Originating-IP: [182.32.31.121]

X-Originating-IP 是电子邮件信头中一个非标准但常用的字段,它记录了原始发件人IP地址,即邮件发送请求最先发起的位置的IP地址。这个字段主要用于识别邮件的实际源头,尤其在追踪垃圾邮件、恶意邮件或者调查邮件发送者真实位置时很有帮助。需要注意的是,这个IP地址可能是发件人计算机的公网IP地址,也可能是网络中的代理服务器或NAT(网络地址转换)设备的出口IP地址。这意味着它可能并非直接指向发件人个人计算机,尤其是在存在网络共享或企业网络环境中。另外,由于不是SMTP协议的标准组成部分,不同邮件系统和服务提供商可能会有不同的实现和命名习惯,有的可能会使用类似X-Origination、X-SenderIP等字段来记录同样的信息。

2.4 Date:

Date: Mon, 25 Mar 2024 12:45:00 +0800 (GMT+08:00)

邮件发送的日期和时间,这是标准中要求必需的字段。

2.5 X-CM-HeaderCharset:

X-CM-HeaderCharset: UTF-8

X-CM-HeaderCharset 是一个非标准的邮件头字段,是由Coremail邮件系统添加,用来指示邮件头字段中使用的字符集编码。邮件头中的字符集用于确保非ASCII字符能够正确地在不同的邮件系统之间传输和解析。在实际应用中,这个字段可能用来说明邮件头中非英语字符的编码方式,例如如果邮件发件人或收件人的名字中含有非ASCII字符,邮件系统可能通过设置这个头字段来明确告知其他系统如何正确解码这些字符。然而,因为这不是一个普遍公认的官方标准RFC中定义的字段,不同邮件系统对其的支持和使用情况可能不一致。在处理邮件时,标准的RFC 2047定义了如何编码非ASCII字符出现在邮件头的机制,而X-CM-HeaderCharset这样的扩展字段则是为了提供额外的信息以提升兼容性和准确性。

2.6 From:

From: t1@mailabc.cn

邮件头中的From字段是标准的电子邮件头字段,用于标识邮件的发送者信息。格式通常为:From: 发件人姓名 <发件人电子邮件地址>尽管邮件客户端通常会显示From字段中的发件人姓名,但电子邮件系统实际上根据电子邮件地址来决定邮件的来源。需要注意的是,由于电子邮件系统的设计特点,From字段是可以伪造的,因此,仅凭From字段并不能完全确认邮件的真实发送者,尤其是在处理垃圾邮件和钓鱼邮件时,需要结合其他信息(如SPF、DKIM和DMARC等验证机制)来判断邮件的真实性。

信头中的From信息会在客户端发件人区域显示

2.7 To:

To: isad00@163.com

邮件头中的To字段也是标准的电子邮件头字段,用于指定邮件的主要接收者或目标收件人。其格式类似于From字段。需要注意的是,在群发邮件时,To字段可能包含多个收件人,他们之间用逗号(,)分隔。此外,邮件还可以通过Cc(抄送)和Bcc(密送)字段添加更多收件人,但这些收件人的信息不会在邮件的To字段中体现出来。同样,To字段也可以被伪造,因此在电子邮件的安全性方面,需要配合其他验证措施,例如邮件服务器的验证机制来确保邮件的收件人信息准确无误。

信头中的To信息在客户端收件人区域显示

2.8 Subject:

Subject: =?UTF-8?Q?DKIM=E6=B5=8B=E8=AF=951?=

信头中Subject表示主题信息,邮件主题采用了MIME编码格式进行编码,具体内容如下:

=?UTF-8?Q? 开始的部分指定了编码方式和编码类型:

  • UTF-8 表示邮件主题使用的是UTF-8字符编码。
  • Q 表示使用的是”Quoted-Printable”编码方式,这是一种用于编码8位字节序列的编码方案,特别适合文本数据,其中大部分字符都是7位ASCII字符,只有少数特殊字符或非ASCII字符才需要编码。

DKIM=E6=B5=8B=E8=AF=951 是经过Quoted-Printable编码后的主题内容,解码后是中文字符串:“DKIM测试1”。

信头中的Subject信息在客户端主题区域显示

2.9 X-Priority:

X-Priority: 3

邮件头中的X-Priority:字段是非标准的邮件头字段,用于指示邮件的重要程度或优先级。这个字段并不是SMTP协议或RFC标准强制要求的,但是一些邮件客户端和邮件服务器会使用它来区分邮件的重要等级。通常,X-Priority:字段的值可能是一个数字,范围从1到5,含义如下:

▪ X-Priority: 1(或 Urgent):最高优先级,表示紧急或非常重要的邮件。

▪ X-Priority: 2(或 High):高优先级邮件。

▪ X-Priority: 3(或 Normal):正常优先级邮件,这是默认级别。

▪ X-Priority: 4(或 Low):低优先级邮件。

▪ X-Priority: 5(或 Bulk):批量邮件或垃圾邮件,可能会被邮件客户端视为不太重要的邮件。

然而,请注意,并非所有的邮件系统都会识别或处理X-Priority:字段。收件人的邮件客户端是否会依据这个字段调整邮件的显示顺序或提醒方式,完全取决于客户端的具体实现。

Foxmail客户端写信可以选择邮件优先级

2.10 X-Mailer:

X-Mailer: Coremail Webmail Server Version 2023.4-cmXT6 build 20231205(37e20f0e) Copyright (c) 2002-2024 www.mailtech.cn mispb-c00420f3-29cf-4a45-b364-a6f5ca683ebd-demokey.cc

邮件头中的X-Mailer字段是一个非标准但常见的邮件头信息,它用于标识发送邮件的软件或应用程序。这个字段通常包含发送邮件的应用程序名称和版本信息,以便于接收方了解邮件是由哪种邮件客户端或服务生成的。

X-Mailer字段并非RFC规定的必填字段,也不影响邮件的实际传输,仅仅是作为一种辅助信息存在。而且,由于是自定义字段,其内容可以根据发送者设置,因此并不能完全依赖它来判断邮件的真实来源或可靠性。

2.11 Content-Type:

Content-Type: multipart/alternative;   boundary="----=_Part_17_1763428915.1711341900441"Content-Type: multipart/alternative;   boundary="----=_Part_17_1763428915.1711341900441"

在电子邮件的头部信息中,Content-Type字段是非常关键的一个字段,用于指示邮件正文的内容类型和编码方式,遵循MIME标准。当Content-Type的值设定为multipart/alternative时,意味着邮件主体由多个不同形式(但具有相同信息内容)的部分组成,这些部分按顺序呈现给收件人,邮件客户端会根据自身的处理能力选择最合适的一种内容展示给用户。

这里的boundary参数(边界字符串)—— “—-=_Part_17_1763428915.1711341900441” 是用于分割邮件主体中不同部分的一个标记。在邮件正文中,每个部分之前都会放置这一边界字符串,并且每部分内部会有自己的Content-Type声明,可能包括纯文本(text/plain)、HTML文本(text/html)或者其他类型的内容。邮件客户端会根据这些不同的部分,决定显示纯文本版本还是富文本(HTML)版本的邮件内容,确保兼容各种类型的邮件阅读器并保证最佳的用户体验。这部分内容改天我再单独介绍,这里不做过多阐述。

2.12 MIME-Version:

MIME-Version: 1.0

邮件头中的MIME-Version: 1.0字段是用于指示邮件遵循多用途因特网邮件扩展(Multipurpose Internet Mail Extensions,简称MIME)协议的版本。MIME是一种标准,它扩展了最初的电子邮件标准,使得邮件可以传输和显示非ASCII字符文本、二进制文件以及多种不同格式的内容。MIME-Version: 1.0表示邮件采用了MIME标准的第一版。尽管至今为止还没有正式的MIME 2.0版本发布,但1.0仍然是普遍认可和使用的版本号,用于确保邮件内容类型、编码方式以及其他相关信息能够被邮件系统正确识别和处理。通过MIME,邮件可以包含丰富的多媒体内容,如图片、声音、视频、附件等,并且可以为邮件正文指定不同的格式,如纯文本或HTML等。

2.13 Message-ID:

Message-ID: <1c322528.2.18e73ed1299.Coremail.t1@mailabc.cn>

信头中的Message-ID字段是电子邮件系统中一个非常重要的组成部分,其作用在于为每一封发出的电子邮件提供一个全球唯一的标识符。这个标识符的格式通常是一个包含“<”和“>”符号包裹的字符串。

2.14 X-Coremail-Locale:

X-Coremail-Locale: zh_CN

X-Coremail-Locale 是一个非标准但常见的电子邮件头部字段,主要在Coremail邮件系统中使用。它用来指定邮件客户端或者邮件系统的区域设置(Locale),也就是语言环境信息。Locale通常包括语言代码和国家/地区代码,用于确定邮件系统界面显示的语言、日期和时间格式等本地化信息。

2.15 X-CM-TRANSID:

X-CM-TRANSID:AQAAfwAnjGZMAQFmBgAAAA--.0W

X-CM-TRANSID 是一个非标准的邮件头部字段,通常由Coremail邮件系统添加,用于记录邮件传输过程中的唯一事务标识符(Transaction ID)。这个字段的作用在于便于邮件系统内部跟踪和管理邮件的传输状态,尤其是在故障排查、邮件审计或邮件日志记录等方面具有重要作用。

2.16 X-CM-SenderInfo:

X-CM-SenderInfo: zwr6ztxloduugofq/1tbiAQAHCmYAyVEAAQABsy

X-CM-SenderInfo 是一个非标准的邮件头部字段,通常由Coremail 邮件系统添加,用于提供邮件发送者的一些额外信息。这个字段的具体内容可能包含了发件人的扩展属性,比如账号状态、发件服务器的标识信息或者其他与发件人相关的上下文数据。

2.17 Authentication-Results:

Authentication-Results: gzga-mx-mta-g1-6; spf=pass smtp.mail=t1@mailab  c.cn; dkim=pass header.i=@mailabc.cn

邮件头部的Authentication-Results字段是用于记录邮件发送过程中进行的各种安全认证结果,帮助接收邮件服务器和客户端评估邮件的安全性和可信度。在这个字段中,可以看到两个重要的邮件认证机制的结果:

  • SPF (Sender Policy Framework):

spf=pass smtp.mail=t1@mailabc.cn 表示发件人地址t1@mailabc.cn通过了SPF验证。这意味着邮件发送的IP地址是发件人域名mailabc.cn授权的服务器之一,降低了邮件被伪装的可能性。

  • DKIM (DomainKeys Identified Mail):

dkim=pass header.i=@mailabc.cn 表示邮件的DKIM签名验证通过。DKIM是对邮件内容和发件人信息进行数字签名的一种方法,通过对比签名和域名的公钥验证,确认邮件在传输过程中未经篡改,并且确为发件人域名mailabc.cn所发出。

综上所述,这个Authentication-Results字段表明了这封邮件在传输过程中通过了SPF和DKIM两项重要的邮件认证机制,提高了邮件的信誉度和真实性。

2.18 X-Coremail-Antispam:

X-Coremail-Antispam: 1Uf129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7v73  VFW2AGmfu7jjvjm3AaLaJ3UbIYCTnIWIevJa73UjIFyTuYvjxU3tkuUUUUU

X-Coremail-Antispam 是一个非标准的邮件头部字段,通常由 Coremail 邮件系统添加,用于记录邮件在发送方(如 Coremail 邮件服务器)进行反垃圾邮件检测后的相关信息。这个字段可以帮助接收方邮件系统或用户了解邮件是否可能为垃圾邮件,以及发送方邮件系统对此邮件的垃圾邮件评分或处理意见。

3. 总结

通过上面的示例,可以看出邮件信头中存在的字段众多,有的是RFC标准要求必须存在的,有的是业界形成的事实标准,还有部分是各个邮件系统厂商自定义扩展的。整理如下:

3.1 信头中通常存在的字段:

  • From
  • To
  • Date
  • Subject
  • Received
  • X-Priority
  • X-Originating-IP、X-Origination、X-SenderIP
  • X-Mailer
  • MIME-Version
  • Content-Type
  • Message-ID
  • DKIM-Signature(启用DKIM情况下存在)
  • Authentication-Results(启用安全认证情况下存在)

3.2 扩展字段(不同厂商扩展字段可能不同):

  • X-CM-HeaderCharset
  • X-Coremail-Locale
  • X-CM-TRANSID
  • X-CM-SenderInfo
  • X-Coremail-Antispam
  • 其他字段

参考来源:邮件运维进阶:邮件信头详细解析|MailABC邮件知识百科

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐