邮件标准协议:MIME(Multipurpose Internet Mail Extensions)
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)的更多相关文章
- MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类
MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型.是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器 ...
- 转:MIME(Multipurpose Internet Mail Extensions)类型
MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型.是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器 ...
- MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准
http://www.alixixi.com/program/a/2010080364045.shtml MIME 消息能包含文本.图像.音频.视频以及其他应用程序专用的数据. 官方的 MIME 信息 ...
- MIME(Multipurpose Internet Mail Extensions-多用途互联网邮件扩展)
MIME MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型.是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时 ...
- MIME(Multipurpose Internet Mail Extensions)的简介
多用途互联网邮件扩展类型(MIME) 作用:用于标识Web资源类型(Multipurpose Internet Mail Extensions,MIME) 效果:Web上MIME为每种类型的资源提供一 ...
- IMAP(Internet Mail Access Protocol,Internet邮件访问协议)以前称作交互邮件访问协议(Interactive Mail Access Protocol)。
IMAP(Internet Mail Access Protocol,Internet邮件访问协议)以前称作交互邮件访问协议(Interactive Mail Access Protocol).IMA ...
- 邮件发送-》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 主 ...
- ThinkPHP邮件发送S(Smtp + Mail + phpmailer)
三种邮件发送介绍:(Smtp,Mail以及phpmailer)ThinkPhp 框架下开发. 邮件发送配置先前准备(用该账号做测试用):(这里用新浪邮箱服务器)将自己的新浪邮箱开通 POP3/SMTP ...
- C#发邮件之命名空间System.Net.Mail
1.添加一个类,取名为Email public class Email { /// <summary> /// 发送方发送方服务器地址 /// </summary> publi ...
随机推荐
- cmd命令 taskkill
netstat -ano|findstr " tasklist|findstr " taskkill /pid taskkill 命令: // 描述: 结束一个或多个任务或流程. ...
- gpload导入常见问题汇总
gpload导入常见问题汇总 java写文件后使用gpload命令导入greenplum: 问题一: 报错信息:invalid byte sequence for encoding "UTF ...
- Flutter -------- dio网络请求
dio是Flutter中文网开源的一个强大的Dart Http请求库,支持Restful API.FormData.拦截器.请求取消.Cookie管理.文件上传/下载.超时等... 1.添加依赖# d ...
- pytorch 想在一个优化器中设置多个网络参数的写法
使用tertools.chain将参数链接起来即可 import itertools ... self.optimizer = optim.Adam(itertools.chain(self.enco ...
- 导出swagger2生成的文档
百度了好多篇用法,没法用.特此记录一下 一.下载项目 下载https://github.com/Swagger2Markup/spring-swagger2markup-demo下的项目,保存,注意文 ...
- ByteBuf使用实例
之前我们有个netty5的拆包解决方案(参加netty5拆包问题解决实例),现在我们采用另一种思路,不需要新增LengthFieldBasedFrameDecoder,直接修改NettyMessage ...
- 【JAVA】java注解的自定义和使用
java注解概念 Java提供了一种原程序中的元素关联任何信息和任何数据的途径和方法 java注解介绍 常用注解 @Override:表示方法是重写的方法 @Deprecated:过时的方法 @Sup ...
- 【Mac】 /usr/local 文件夹权限问题
修改文件夹权限 sudo chown -R $(whoami) /usr/local/ 如果失败提示Operation not permitted 或其他权限不足,则需要关闭Rootless Root ...
- Qt编写自定义控件70-扁平化flatui
一.前言 对于现在做前端开发人员来说,FlatUI肯定不陌生,最近几年扁平化的设计越来越流行,大概由于现在PC端和移动端的设备的分辨率越来越高,扁平化反而看起来更让人愉悦,而通过渐变色产生的质感色彩反 ...
- Hashset(不能添加相同的字符进入数组)
参考: https://ke.qq.com/webcourse/index.html#cid=434021&term_id=100518216&taid=377652179413386 ...