一:MIME
1:全程:Multipurpose Internet Mail Extensions
多用途互联网邮件扩展
广泛使用的一种电子邮件规范
作用:在不改变smtp 协议的基础上可以发送任何二进制文件
二:MIME 详解
一封邮件包括信封,邮件头,邮件体三部分
信封可以不包含二进制信息,其他两部分可以包含二进制信息
MIME就是对这两个部分加以改进
1:新增了一些邮件头信息,用来协商MIME 的一些参数
2:定义了许多邮件内容的格式,对多媒体电子的表示进行了标准化
3:定义了传送编码,从而可以传送任意二进制文件
注意:所有的改进都是在不改变原有SMTP协议的基础上进行的
三:邮件头
1:邮件头的域
------------------------------------------------------------------------------------------------------
域名 含义 添加者
------------------------------------------------------------------------------------------------------
Received 传输路径 各级邮件服务器
Return-Path 回复地址 目标邮件服务器
Delivered-To 发送地址 目标邮件服务器
Reply-To 回复地址 邮件的创建者
From 发件人地址 邮件的创建者
To 收件人地址 邮件的创建者
Cc 抄送地址 邮件的创建者
Bcc 暗送地址 邮件的创建者
Date 日期和时间 邮件的创建者
Subject 主题 邮件的创建者
Message-ID 消息ID 邮件的创建者
MIME-Version MIME版本 邮件的创建者
Content-Type 内容的类型 邮件的创建者
Content-Transfer-Encoding 内容的传输编码方式 邮件的创建者
非标准的、自定义域名都以X-开头,例如X-Mailer, X-MSMail-Priority等,
通常在接收和发送邮件的是同一程序时才能理解它们的意义。
除了后面两个域外,其他的域的意思很明了,所以下面只对后两个域做解释
2:Content-Type域
定义:类容类型域,用来说明传输类容的类型
结构:Content-Type域 由 主类型/子类型 构成
主类型有:
----------------------------------------------------------------
类型名 意义
----------------------------------------------------------------
text 文本
image 图片
audio 音频
video 视频
application 应用
multipart 分段
message 消息
注意:每一个主类型都有多个子类型
如:text(plain html xml css)
注意:以X-开头的主类型和子类型,同样表示自定义的类型,
未向IANA正式注册,但大多已经约定成俗了
3:Content-Transfer-Encoding域--传送编码域
作用:用来说明后面传送类容的编码方式
结构:Content-Transfer-Encoding共有Base64, Quoted-printable, 7bit, 8bit, Binary等几种
其中7bit是缺省的编码方式
四:邮件体
邮件体的类型由,邮件头Content-type 的类型指出
常见的简单类型有:text/plain 简单文本 text/html 超文本
源码中的multipart 是MIME 中最重要的部分
邮件体被分为多个段,每个段又包含段头和段体两部分,这两部分之间也以空行分隔
常见的multipart类型有三种:
multipart/mixed,
multipart/related
multipart/alternative