社区
C#
帖子详情
急!!!如何分离出pop3接收过来的邮件正文和附件?
kuangliqun
2003-05-21 01:01:56
我用C#做了一个接收邮件的程序,内容都能解码出来。可是接收到的邮件编码格式都各不相同,有的是用Boundary分离了邮件头、正文和附件,有的却没有。邮件内容分离的规则到底是什么?
...全文
797
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协议 SMTP(Simple Mail Transfer Protocol)即简单
邮件
传输协议,它是一组用于由源地址到目的地址传送
邮件
的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了。 import smtplib from emai...
Python3 imap
pop3
、邮箱自动下载
附件
,分析
邮件
内容
python3,imap,
pop3
,
邮件
附件
自动下载
Python
POP3
读取
邮件
Python、
POP3
、读取
邮件
信息
javaMail解析
邮件
内容和下载
附件
介绍一下JavaMail的Message 它对应JavaMail的Message对象,一个Message对象又会有多个子对象如MultiPart对象,更特殊的是整个
邮件
内容为一个大的 MultiPart,然而
邮件
的
正文
则在嵌套的一个子MultiPart中,如果不了解这种组织结构,就可能无法正确获得
邮件
的
正文
。此结构如下图所示:
邮件
Message 头部(
JavaMail
接收
邮件
和
附件
(测试可用)
package com.xcy; import java.io.*; import java.text.*; import java.util.*; import javax.mail.*; import javax.mail.internet.*; public class PraseMimeMessage{ private MimeMessage mimeMess
C#
111,129
社区成员
642,532
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章