MIME(多用途互联网邮件扩展)指的是一系列电子邮件技术规范 ,主要包括 RFC 2045~2049

 

传统的电子邮件只能使用 ASCII 字符,导致非英文字符都不能在电子邮件中使用

而且电子邮件中不能插入二进制文件(图片/视频),也没有附件

 

MIME 是对传统电子邮件的一个扩展,现在已经成为电子邮件实际上的标准


MIME 标准浅析

下面是一封普通的电子邮件 Test Mail 的信件头:

从上面可以看出,这封信的发信人地址是 chen892704@163.com,收信人地址是 sqchen@coremail.cn ,邮件主题是 Test ,发送时间是 2018 年 7 月 19 日

从结构上,这封信分为三个部分:信件头 + 空行 + 信件体

 

MIME 对传统电子邮件的扩展表现在,它在信件头部分添加了几条语句,主要有:

这条语句标识了这封信使用了 MIME 规范,其中 1.0 的版本号是不变的,即使 MIME 本身已经升级好几次

 

这条语句表明了传递的信息类型,包含主要类型(primary type)和次要类型(subtype)两部分,两者之间用 “/” 分割

常见的简单类型有:

 

上例中出现的 multipart 类型是 MIME 邮件的重要内容,邮件体被分为多个段,每个段又包含段头和段体两部分,这两部分之间也以空行分隔

常见的 multipart 类型有三种:multipart/mixed、multipart/related 和 multipart/alternative,它们的层次关系可归纳为下图:

(详细内容参考 Multi-Part MIME Messages

其中 boundary 表示不同信件内容的分割线,它通常是一个很长的随机字符串

 


下面观察一下 Test Mail 的邮件体:

从邮件体可以看出,这封邮件的内容包括四部分:

  • 纯文本:Hello world
  • 超文本:字体、字号等信息
  • 图片:cm.jpg
  • 附件:rfc2045.txt.pdf

 

由于电子邮件的传统格式不支持非 ASCII 编码和二进制数据,因此 MIME 规定了第三条语句:

这条语句指明了该块内容的编码转换方式,Content-Transfer-Encoding 的值有五种:7bit、8bit、binary、quote-printable 和 base64

其中 7bit 是缺省值,即不用转化的 ASCII 字符

 

可以注意到在图片和附件块有一行特殊的语句:



Content-Disposition 是 MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件

Content-Disposition 可以控制用户请求所得的内容为一个文件的时候提供默认的文件名,文件直接在浏览器上显示或者在访问文件时弹出文件下载框

content-disposition = "Content-Disposition" ":" disposition-type *( ";" disposition-parm )

本例中,cm.jpg 会直接在浏览器中显示(inline),而 rfc2045.txt.pdf 则会以附件形式下载(attachment)

邮件标准协议:MIME(Multipurpose Internet Mail Extensions)的更多相关文章

  1. MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类

    MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型.是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器 ...

  2. 转:MIME(Multipurpose Internet Mail Extensions)类型

    MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型.是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器 ...

  3. MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准

    http://www.alixixi.com/program/a/2010080364045.shtml MIME 消息能包含文本.图像.音频.视频以及其他应用程序专用的数据. 官方的 MIME 信息 ...

  4. MIME(Multipurpose Internet Mail Extensions-多用途互联网邮件扩展)

    MIME MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型.是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时 ...

  5. MIME(Multipurpose Internet Mail Extensions)的简介

    多用途互联网邮件扩展类型(MIME) 作用:用于标识Web资源类型(Multipurpose Internet Mail Extensions,MIME) 效果:Web上MIME为每种类型的资源提供一 ...

  6. IMAP(Internet Mail Access Protocol,Internet邮件访问协议)以前称作交互邮件访问协议(Interactive Mail Access Protocol)。

    IMAP(Internet Mail Access Protocol,Internet邮件访问协议)以前称作交互邮件访问协议(Interactive Mail Access Protocol).IMA ...

  7. 邮件发送-》http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256

    昨天使用发送邮件报了一个错 http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256 主 ...

  8. ThinkPHP邮件发送S(Smtp + Mail + phpmailer)

    三种邮件发送介绍:(Smtp,Mail以及phpmailer)ThinkPhp 框架下开发. 邮件发送配置先前准备(用该账号做测试用):(这里用新浪邮箱服务器)将自己的新浪邮箱开通 POP3/SMTP ...

  9. C#发邮件之命名空间System.Net.Mail

    1.添加一个类,取名为Email public class Email { /// <summary> /// 发送方发送方服务器地址 /// </summary> publi ...

随机推荐

  1. PyCharm 中写 Turtle代码没提示以及标黄问题

    PyCharm 中在使用Turtle(海龟)库绘图体系时,代码明明是正确可以运行的,但是没有提示 ,代码出现黄色标记以及红色波浪线 ,经验不足的人还以为自己的书写方法错误,毕竟出现了红色波浪线,效果如 ...

  2. Python之Django之views中视图代码重复查询的优化

    Django框架中views视图中如果多个函数都有同样的查询语句,例如: allcategory = Category.objects.all() remen = Article.objects.fi ...

  3. django实战总结2

    https://www.jianshu.com/p/9b3bfe934511 https://www.cnblogs.com/1Q84mi/p/xadmin002.html https://blog. ...

  4. C/C++ socket编程教程之九:TCP的粘包问题以及数据的无边界性

    C/C++ socket编程教程之九:TCP的粘包问题以及数据的无边界性 上节我们讲到了socket缓冲区和数据的传递过程,可以看到数据的接收和发送是无关的,read()/recv() 函数不管数据发 ...

  5. TCP和TLS/SSL会话细节

    TCP数据段格式说明TCP建立连接和断开连接细节Https如何保证通信安全一次Https网络请求通信细节网络数据包分析工具wireshark的使用问题:SYN.ACK.FIN具体含义是什么?TCP建立 ...

  6. hadoop记录-[Flink]Flink三种运行模式安装部署以及实现WordCount(转载)

    [Flink]Flink三种运行模式安装部署以及实现WordCount 前言 Flink三种运行方式:Local.Standalone.On Yarn.成功部署后分别用Scala和Java实现word ...

  7. 详细介绍Oracle数据库的聚簇技术

    作者:☜ Tracy ☞ 1. 什么是聚簇 d1=A=: 聚簇是根据码值找到数据的物理存储位置,从而达到快速检索数据的目的.聚簇索引的顺序就是数据的物理存储顺序,叶节点就是数据节点.非聚簇索引的顺序与 ...

  8. 【NANO】引脚说明

    http://bbs.eeworld.com.cn/forum.php?mod=viewthread&tid=489650&page=1

  9. HTML布局排版2 div的和图片平铺方便管理

    在HTML里,由于浏览器显示器等差异,浏览器的宽度也会有变化,为了适应不同的宽度,需要用到平铺.例如页面前面的固定的条等,如果是纯色,可以用背景色,如果不是纯色,是渐变等,可以用条状图平铺.常见的布局 ...

  10. SecureCRT配色方案(转)

    1. 设置背景颜色和字体颜色: 选项(Options)==>会话选项(Sessions options)==>终端(Terminal)==>仿真(Emulation)  选项(Opt ...