电子邮件中的字符串

转载 2006年05月20日 16:08:00
电子邮件中的字符串

当一段 Text 或者 HTML 通过电子邮件传送时,发送的内容首先通过一种指定的字符编码转化成“字节串”,然后再把“字节串”通过一种指定的传输编码(Content-Transfer-Encoding)进行转化得到另一串“字节串”。比如,打开一封电子邮件源代码,可以看到类似的内容:

Content-Type: text/plain;
        charset="gb2312"
Content-Transfer-Encoding: base64

sbG+qcrQuqO17cf4yee74bGjz9W7+b3wudzA7dbQ0MQNCg0KvPKzxqO6uqO17cnnsaPW0NDEDQoNCg==

最常用的 Content-Transfer-Encoding 有 Base64 和 Quoted-Printable 两种。在对二进制文件或者中文文本进行转化时,Base64 得到的“字节串”比 Quoted-Printable 更短。在对英文文本进行转化时,Quoted-Printable 得到的“字节串”比 Base64 更短。

邮件的标题,用了一种更简短的格式来标注“字符编码”和“传输编码”。比如,标题内容为 "中",则在邮件源代码中表示为:

// 正确的标题格式
Subject: =?GB2312?B?1tA=?=

其中,

  • 第一个“=?”与“?”中间的部分指定了字符编码,在这个例子中指定的是 GB2312。
  • “?”与“?”中间的“B”代表 Base64。如果是“Q”则代表 Quoted-Printable。
  • 最后“?”与“?=”之间的部分,就是经过 GB2312 转化成字节串,再经过 Base64 转化后的标题内容。

如果“传输编码”改为 Quoted-Printable,同样,如果标题内容为 "中":

// 正确的标题格式
Subject: =?GB2312?Q?=D6=D0?=

如果阅读邮件时出现乱码,一般是因为“字符编码”或“传输编码”指定有误,或者是没有指定。比如,有的发邮件组件在发送邮件时,标题 "中":

// 错误的标题格式
Subject: =?ISO-8859-1?Q?=D6=D0?=

这样的表示,实际上是明确指明了标题为 [0x00D6, 0x00D0],即 "ÖÐ",而不是 "中"。

Python SMTP 发送带附件电子邮件

这里写链接内容可采用email模块发送电子邮件附件。发送一个未知MIME类型的文件附件其基本思路如下:1. 构造MIMEMultipart对象做为根容器 2. 构造MIMEText对象做为邮件显示内容...

ABAP技术:发送内容带有图片的电子邮件

Send an email with image in thebody along with the text. 发送内容带有图片的电子邮件   We come across a requirm...

MailBee.NET Objects发送电子邮件(SMTP)教程七:添加多个附件

MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,简单高效。具备“必需”以及独特的功能,这...

使用Flasl-Mail提供电子邮件支持

使用pip安装Flask-Mailpip install flask-mail这里使用163的邮箱作为发送者。 注册163邮箱之后,去设置 -> POP3/SMTP/IMAP(在右侧导航栏),然后开...
  • LToddy
  • LToddy
  • 2017年08月01日 21:45
  • 303

linux CentOS6的mail/sendmail命令发送电子邮件实现

http://www.111cn.net/sys/linux/43376.htm 我经常使用linux也是因为工作都需要在linux centos6中操作,下面来介绍我在linux 中使用m...
  • mt_rand
  • mt_rand
  • 2012年11月10日 15:10
  • 1590

Spire.Email 教程:如何删除C#,VB.NET中的电子邮件

Spire.Email 是一个专业且独立使用的.NET 电子邮件库,本教程介绍了如何删除C#,VB.NET中的电子邮件。...

基于Libnids的电子邮件内容的重现POP3

一、引言 Libnids是一个用于网络入侵检测应用的专业编程接口。利用Libnids所提供的基本框架和基本功能,可以方便快速地构建基于网络的入侵检测系统,实现网络协议分析、网络数据的嗅探以及重现等多...

JavaMail系列(五) 使用IMAP协议接收并解析电子邮件

package org.yangxin.study.jm;    import java.io.BufferedReader;  import java.io.InputStreamReader;  ...
  • jarniyy
  • jarniyy
  • 2016年05月04日 15:59
  • 3514

电子邮件的POP3/SMTP/IMAP服务

本篇介绍关于电子邮件协议中用的POP3/IMAP/SMTP服务的区别:  IMAP  IMAP全称是Internet Mail Access Protocol,即交互式邮件访问协议,是一个应用层协议(...

无法发送电子邮件,可能原因:您的主机禁用了mail()函数

首先配置smtp请参考此文,如果不能成功,再看下文 WordPress无法发送邮件的解决方法对应普通虚拟主机来说,要开启 fsockopen(一般是在主机商提供的管理后台中可以开启,不会的请联系主机...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:电子邮件中的字符串
举报原因:
原因补充:

(最多只允许输入30个字)