总的来说,参照rfc4021标准,mime格式分为消息头和消息体两部分(邮件头和邮件体)。
本文大致描述邮件格式,仅供参考。
邮件头
邮件头包含了发件人、收件人、主题、时间、MIME版本、内容的类型、内容的传输编码方式等重要信息。每条信息称为一个域,由域名后加冒号(“ : ”)和信息内容构成,可以是一行,也可以占用多行。域的首行必须顶头写(即左边不能有空白字符(空格和制表符));续行则必须以空白字符打头,且第一个空白字符不是信息本身固有的,解码时要过滤掉。另外,邮件头中不允许出现空行。
例如:
Date: Wed, 15 Aug 2017 10:09:00 +0800
From: simba@www.simba.com
To: "simba" <simba@www.simba.com>
Cc: "simba" <simba@www.simba.com>
BCC: "simba" <simba@www.simba.com>
Subject: test
Message-ID: <20170815100900.0E67523E1438@www.test3.com>
X-mailer: Foxmail 6, 15, 201, 21 [cn]
X-Spam: yes
X-Rmilter-Greylist: Sender IP ::1 is whitelisted by configuration
Mime-Version: 1.0
包含内容解释及其他信息如下:
邮件头
域名 | 含义 | 添加者
Received | 传输路径 | 各级邮件服务器
Return-Path | 回复地址 | 目标邮件服务器
Delivered-To | 发送地址 | 目标邮件服务器
Reply-To | 回复地址 | 邮件的创建者
From | 发件人地址 | 邮件的创建者
To | 收件人地址 | 邮件的创建者
Cc | 抄送地址 | 邮件的创建者
Bcc | 暗送地址 | 邮件的创建者
Date | 日期和时间 | 邮件的创建者
Subject | 主题 | 邮件的创建者
Message-ID | 消息ID | 邮件的创建者
MIME-Version | MIME版本 | 邮件的创建者
Content-Type | 内容的类型 | 邮件的创建者
Content-Transfer-Encoding | 内容的传输编码方式 | 邮件的创建者
段头
域名 含义
Content-Type | 段体的类型
Content-Transfer-Encoding | 段体的传输编码方式
Content-Disposition | 段体的安排方式
Content-ID | 段体的ID
Content-Location | 段体的位置(路径)
Content-Base | 段体的基位置
邮件体
邮件内容有各种各样的(既纯文本,超文本,内嵌资源(比如内嵌在超文本中的图片),附件的组合),服务器通过第一个content-type判断邮件内容,如果包含了其他内容,邮件体被分为多个段,段中可包含段,每个段又包含段头和段体两部分。
+----------------------------------------multipart/mixed----------------------------------------+
| |
| |
| +---------------------------multipart/related---------------------------+ |
| | | |
| | | |
| | +---------mutipart/alternative--------------+ +-------------+ | +-------+ |
| | | | | 内嵌资源 | | | 附件 | |
| | | | +-------------+ | +-------+ |
| | | +---------------+ +---------------+ | | |
| | | | 纯文本正文 | | 超文本正文 | | | |
| | | +---------------+ +---------------+ | +-------------+ | +-------+ |
| | | | | 内嵌资源 | | | 附件 | |
| | | | +-------------+ | +-------+ |
| | +-------------------------------------------+ | |
| | | |
| | | |
| +-----------------------------------------------------------------------+ |
| |
| |
+-----------------------------------------------------------------------------------------------+
可以看出,如果在邮件中要添加附件,必须定义multipart/mixed段;如果存在内嵌资源,至少要定义multipart/related段;如果纯文本与超文本共存,至少要定义multipart/alternative段。什么是“至少”?举个例子说,如果只有纯文本与超文本正文,那么在邮件头中将类型扩大化,定义为multipart/related,甚至multipart/mixed,都是允许的。
---------------------
作者:哪吒要结婚
来源:CSDN
原文:https://blog.csdn.net/weixin_37958284/article/details/77186279
版权声明:本文为博主原创文章,转载请附上博文链接!
转载自原文链接, 如需删除请联系管理员。
原文链接:电子邮件基本格式(MIME格式),转载请注明来源!