社区
C#
帖子详情
急!!!如何分离出pop3接收过来的邮件正文和附件?
kuangliqun
2003-05-21 01:01:56
我用C#做了一个接收邮件的程序,内容都能解码出来。可是接收到的邮件编码格式都各不相同,有的是用Boundary分离了邮件头、正文和附件,有的却没有。邮件内容分离的规则到底是什么?
...全文
772
4
打赏
收藏
急!!!如何分离出pop3接收过来的邮件正文和附件?
我用C#做了一个接收邮件的程序,内容都能解码出来。可是接收到的邮件编码格式都各不相同,有的是用Boundary分离了邮件头、正文和附件,有的却没有。邮件内容分离的规则到底是什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kuangliqun
2003-05-22
打赏
举报
回复
多谢!问题已经解决
coollzh
2003-05-21
打赏
举报
回复
Content-Disposition: attachment;
filename="Demo.zip"
后面紧跟两个空行,下面就是附件内容,编码有base64,也有QP
Essence_zhx
2003-05-21
打赏
举报
回复
关键是理解邮件的格式问题,关于邮件大的格式可以这样的看。在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: base64
IA0KDQogICAgICC49iDIyyC88iDA+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
好了说到这里你应该知道怎么做了吧。
jonescheng
2003-05-21
打赏
举报
回复
高人。学习
[506]python实现
邮件
接收
、
附件
下载
本文深入探讨SMTP、
POP3
及IMAP协议的工作原理,详细介绍了如何使用Python的smtplib、poplib和imaplib库进行
邮件
的发送、
接收
及管理。通过具体代码示例,展示了
邮件
处理的全过程。
Python3 imap
pop3
、邮箱自动下载
附件
,分析
邮件
内容
本文介绍IMAP与
POP3
两种
邮件
协议的区别,并通过Python示例代码展示了如何使用这两种协议来拉取
邮件
内容及
附件
。
Python
POP3
读取
邮件
本文介绍了如何使用Python的poplib和email模块收取并解析
邮件
。首先,需要开启邮箱的
POP3
服务并获取授权码。接着,通过poplib连接到
POP3
服务器,获取
邮件
原始文本,然后利用email模块解析
邮件
头和
正文
,包括解码字符串、获取发件人、收件人、主题等信息。最后,展示了代码实现和输
出
结果。
JavaMail
接收
邮件
和
附件
(测试可用)
该Java程序展示了如何使用JavaMail API从
POP3
服务器
接收
邮件
,并解析
邮件
内容,包括发件人、收件人、抄送人、密送人、主题、发送日期以及
正文
。同时,它还能检测并保存
邮件
中的
附件
。
javaMail解析
邮件
内容和下载
附件
本文介绍如何使用JavaMail的Message对象解析
邮件
内容,包括理解Message对象与MultiPart的关系,以及如何从复杂的
邮件
结构中提取
正文
和下载
附件
。提供相关代码示例。
C#
111,131
社区成员
642,542
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章