关键是理解邮件的格式问题,关于邮件大的格式可以这样的看。在outlook中把邮件另存为.eml的文件,然后用记事本打开就可以看到邮件的格式了。
其中可以分为邮件头信息,和邮件体信息。而每个邮件体是有多个段构成的,每个段都标识了自己是什么内容以及使用什么格式存储的。下面做一下具体的说明:
邮件头中有这样的一段(包括空):
Content-Type: multipart/related;
type="multipart/alternative";
boundary="----=_NextPart_000_0055_01C31A04.A7752710"其中 ----=_NextPart_000_0055_01C31A04.A7752710 表示对于每一段的分隔标志不过在一段开始标志是 "--"+"分隔标志",这段的结束用"--"+"分隔标志"+"--""表示。而每段的内容又可以有自己的子段。例如:
------=_NextPart_000_0055_01C31A04.A7752710
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0056_01C31A04.A776ADB0"这段表示子段的分隔符是----=_NextPart_001_0056_01C31A04.A776ADB0,下面看一下其中一个子段的内容。
------=_NextPart_001_0056_01C31A04.A776ADB0
Content-Type: text/plain;
charset="gb2312"
Content-Transfer-Encoding: base64IA0KDQogICAgICC49iDIyyC88iDA+g0KICAgICANCg0KDQoNCiAgICAgINDVIMP7o7og1cXP6A0K
DQogICAgICDQ1CCx8KO6IMTQDQoNCiAgICAgILP2yfrI1cbao7oxOTc5LzEyLzEwDQoNCiAgICAg
ILunIL/ao7ogtPPBrA0KDQogICAgICDEv8ewxOrQvaO6Ms3yyMvD8bHSDQoNCiAgICAgILmk1/e+
rdHpo7rSu8TqDQoNCiAgICAgILXn19PTyrz+o7praWx4eUBob3RtYWlsLmNvbQ0KDQogICAgICC1
5yAgICC7sKO6MTM4NDI2MjAxMDANCg0KICAgICAguPbIy9b30rOjusGsvdMNCg0KICAgICAgyO28其中
Content-Type: text/plain;表示该段为文本类型,也就是说邮件以普通文本类性浏览的时候是这段内容。
charset="gb2312" 表示给段文本的编码为gb2312
Content-Transfer-Encoding: base64 表示该段的内容是以base64的编码存储的。
下面的乱码就是以base64格式存促的该具体内容。再看另一段------=_NextPart_000_0055_01C31A04.A7752710
Content-Type: image/gif;
name="clip_image003.gif"
Content-Transfer-Encoding: base64
Content-ID: <005301c319c1$993f9790$0b00a8c0@zhx>R0lGODlhCgABAHcAMSH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACH5BAEAAAAALAAAAAAB
AAEAgAAAAAECAwICRAEAOw==Content-Type: image/gif;表示该段内容是以.gif为结尾的图片。
name="clip_image003.gif"表示文件名
Content-Transfer-Encoding: base64 该段的编码
Content-ID: <005301c319c1$993f9790$0b00a8c0@zhx> 标识了该附件在邮件内的唯一表示,该标识可以在邮件以html格式发送时显示图片的url所用,例如要在邮件中显示这副图片可以这样<IMG src="cid:005101c319c1$993f9790$0b00a8c0@zhx">。其中 Content-Type:类型的值不是随便写的下面是一些常见文件扩展名所对应关系。
扩展名 格式
".gif" --->"image/gif"
".gz" --->"application/x-gzip"
".htm" --->"text/html"
".html" --->"text/html"
".jpg" --->"image/jpeg"
".tar" --->"application/x-tar"
".txt" --->"text/plain"
".zip" --->"application/zip
好了说到这里你应该知道怎么做了吧。
其中可以分为邮件头信息,和邮件体信息。而每个邮件体是有多个段构成的,每个段都标识了自己是什么内容以及使用什么格式存储的。下面做一下具体的说明:
邮件头中有这样的一段(包括空):
Content-Type: multipart/related;
type="multipart/alternative";
boundary="----=_NextPart_000_0055_01C31A04.A7752710"其中 ----=_NextPart_000_0055_01C31A04.A7752710 表示对于每一段的分隔标志不过在一段开始标志是 "--"+"分隔标志",这段的结束用"--"+"分隔标志"+"--""表示。而每段的内容又可以有自己的子段。例如:
------=_NextPart_000_0055_01C31A04.A7752710
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0056_01C31A04.A776ADB0"这段表示子段的分隔符是----=_NextPart_001_0056_01C31A04.A776ADB0,下面看一下其中一个子段的内容。
------=_NextPart_001_0056_01C31A04.A776ADB0
Content-Type: text/plain;
charset="gb2312"
Content-Transfer-Encoding: base64IA0KDQogICAgICC49iDIyyC88iDA+g0KICAgICANCg0KDQoNCiAgICAgINDVIMP7o7og1cXP6A0K
DQogICAgICDQ1CCx8KO6IMTQDQoNCiAgICAgILP2yfrI1cbao7oxOTc5LzEyLzEwDQoNCiAgICAg
ILunIL/ao7ogtPPBrA0KDQogICAgICDEv8ewxOrQvaO6Ms3yyMvD8bHSDQoNCiAgICAgILmk1/e+
rdHpo7rSu8TqDQoNCiAgICAgILXn19PTyrz+o7praWx4eUBob3RtYWlsLmNvbQ0KDQogICAgICC1
5yAgICC7sKO6MTM4NDI2MjAxMDANCg0KICAgICAguPbIy9b30rOjusGsvdMNCg0KICAgICAgyO28其中
Content-Type: text/plain;表示该段为文本类型,也就是说邮件以普通文本类性浏览的时候是这段内容。
charset="gb2312" 表示给段文本的编码为gb2312
Content-Transfer-Encoding: base64 表示该段的内容是以base64的编码存储的。
下面的乱码就是以base64格式存促的该具体内容。再看另一段------=_NextPart_000_0055_01C31A04.A7752710
Content-Type: image/gif;
name="clip_image003.gif"
Content-Transfer-Encoding: base64
Content-ID: <005301c319c1$993f9790$0b00a8c0@zhx>R0lGODlhCgABAHcAMSH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACH5BAEAAAAALAAAAAAB
AAEAgAAAAAECAwICRAEAOw==Content-Type: image/gif;表示该段内容是以.gif为结尾的图片。
name="clip_image003.gif"表示文件名
Content-Transfer-Encoding: base64 该段的编码
Content-ID: <005301c319c1$993f9790$0b00a8c0@zhx> 标识了该附件在邮件内的唯一表示,该标识可以在邮件以html格式发送时显示图片的url所用,例如要在邮件中显示这副图片可以这样<IMG src="cid:005101c319c1$993f9790$0b00a8c0@zhx">。其中 Content-Type:类型的值不是随便写的下面是一些常见文件扩展名所对应关系。
扩展名 格式
".gif" --->"image/gif"
".gz" --->"application/x-gzip"
".htm" --->"text/html"
".html" --->"text/html"
".jpg" --->"image/jpeg"
".tar" --->"application/x-tar"
".txt" --->"text/plain"
".zip" --->"application/zip
好了说到这里你应该知道怎么做了吧。
解决方案 »
- 要把显示的邮箱号中间一串改成*号,用正则怎么弄
- 初学者提问。怎么用C#的面向对象设计的方法求解圆的面积?
- string sql= "select * into #tmp FROM OpenDataSource('Microsoft.Jet.O
- 关于文件的路径问题!在线等。
- 求一个能在asp中正常使用的数据层的类,SqlClient的。
- C#的比特币或莱特币发送api怎么弄呢?
- 如何动态的添加进度条到界面?
- 虚拟电表程序的数据库设计
- byte[4] 如何赋值给 uint
- C#.web中,MessageBox的问题
- 老是看见别人写着,sqlhelper类。我想知道这个类主要是干什么用的??
- 什么是半角字符、全角字符?
Content-Disposition: attachment;
filename="Demo.zip"后面紧跟两个空行,下面就是附件内容,编码有base64,也有QP