coder消息摘要标题 阅读者理解
消息的抄送着即使邮件不是直接写给他们的
MIME 多用途因特网邮件扩展
Multipurpose internet mail extension;
multipurpose internet mail extension
如果RFC 2822要求消息仅包含U.S.ASCII字符
如何使人们发送带有图片和其他二进制文件附件的邮件 发送带有图片和其他二进制文件的附件
利用RFC 2822扩展MIME(Multi-purpose internet mail extension)
发送图片及其他二进制附件邮件MIME;
向电子邮件消息添加二进制附件 用非英语字符写消息甚至消息头 使消息内容在另一端正确显示
假设另一端理解MIME 邮件终端能理解MIME
主要的MIME标准是RFC 1521 描述了如何将二进制数据写入E-mail
MIME编码quoted-printable coders
base64 编码
quoted-printable quopri
base64
base64编码则用于二进制数据 它不应当用于人类可读的文本 完全掩盖了文本
既然quoted-printable可以处理所有数据,并且不破坏人类可读文本 有些数据并不是printable 而硬将它们编码为quoted-printable格式引起误导 Base64编码比quoted-printable编码表示二进制数据更有效率
使用以长串随机的二进制字符对两种编码方式进行比较
Python 字符串数据编码解码模块
quoted-printable quopri
base64
用base64对大多数二进制数据进行编码节省空间带宽
用base64 编码ascii字符串过犹不及
MIME支持两种不同类型编码方式
一种可读的编码quoted-printable哪一种密集型编码
可读编码quoted-printable 密集型编码
MIME multipurpose internet mail extension;
MIME 比它名称揭示的 emailapp 也使用mime许多特征
使用base64 或是 quoted-printable编码将非ascii字符转换成Ascii字符的思想
base64编码有时也用在不对文本做加密的前提下使文本隐晦不易读
关于内容类型的思想
Here's that picture I took of you 通过使用Base64编码 接收者将得到发送时进行编码数据
内容类型
邮件阅读器如何才能知道图片 而不是其他形式二进制数据
MIME通过定义一个定制的RFC 2822 格式的邮件头解决这个问题
头名 Content-Type;
描述了邮件主体文件类型
邮件主体问类型
邮件主体邮件类型;
头名Content-Type 描述了邮件主体文件类型 接收者邮件客户端可以知道如何显示
描述邮件主体文件类型
内容类型包括text/plain 如何将一封普通的E-mail消息封装在MIME
text/html image/jpeg video/mpeg audio/mp3
每种内容类型都有一个主类型 子类型 斜杠分割
每个类型都有一个主类型和子类型
主类型和子类型用斜杠分割
子类型通常指定特定类型文本格式
内容类型的字符串能够告诉接收者如何处理
MIME用在E-mail世界之外
http响应都有一个Content-type头
就像MIME E-mail消息
告诉web浏览器如何显示响应
创建带附件的MIME消息
制作一个包含已编码图片文件MIME消息
MIME多部分消息
消息主体没有用于容纳文本的部分
在文件主体内放置文本将破坏图片文件
主体内放置文本 破坏图片文件
邮件消息的Content-Type头可以是text/plain 或者image/jpeg
除了分类其他标准定义的文件格式
除了分类其他标准定义的文件格式 针对图片格式image
multipart特殊主类型
主内容类型multipart的消息可以在它的主体包含其他MIME 消息
每个MIME消息有自己的邮件头内容类型
观察multipart内容类型的工作原理最好的方法是使用e-maill.mime,multipart创建多部分消息 使用email.mime*创建作为附件的文件
仅有内容类型(multipart/mixed)不足以使邮件主体有意义 MIME需要对边界 进行定义 边界是Python半随机地生成字符串
半随机生成的字符串 在邮件中 标记一部分结束 一部分开始的地方
消息作为整体拥有关联的E-mail消息的所有头Subject From,To MIME特定的Content-header
既在消息头部也在消息体出现
事先不能确定使用哪个类表示邮件消息
称作StartMessage类 创建E-mail消息
将主体文本保存在简单的Message表示中
添加附件 使用MimeMultipart
策略产生与典型终端用户邮件程序相同的E-mail消息主体