POP3协议如何解析邮件?

时间:2021-03-04 00:26:02
这个邮件的格式有点蛋疼,用163邮箱发送一幅图片,接收邮件信息,Recv对应的代码是:

------=_NextPart_003_1314087773578
Content-Type: image/jpeg;
name="1314087741062.jpg"
Content-Transfer-Encoding: base64
Content-ID: <1320548027448>

//下面是图片数据
/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYH
BwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcI
DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAAR
..........

用QQ邮箱发送一幅图片,接收邮件信息,Recv对应的代码是:

------=_NextPart_4E5325EF_DEF066B0_1463608D
Content-Type: application/octet-stream;
name="009A27C1@8D606314.EF25534E"
Content-Transfer-Encoding: base64
Content-ID: <009A27C1@8D606314.EF25534E>

/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYH
BwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcI
DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAAR
····

为啥Content-Type都不一样,还有为啥有些邮件结束时没有分界线,求做过邮件解析的指点下,求MIME邮件具体格式信息,什么RFC 822的更好,我能搜到的内容都不够具体。。

11 个解决方案

#1


这个是邮件发送的时候确定的。qq把附件当成application/octet-stream;163当成image/jpeg。对你来说没关系的。
结束的boundary相当于后边有个空的part,也没关系的。

#2


求点资料也好。。

#3


引用 1 楼 ndy_w 的回复:
这个是邮件发送的时候确定的。qq把附件当成application/octet-stream;163当成image/jpeg。对你来说没关系的。
结束的boundary相当于后边有个空的part,也没关系的。

发送的图片都不是作为附件发送的,就是发送HTML邮件时添加图片,发送附件的话2者都是显示

Content-Disposition: attachment;
 filename="=?GBK?B?0MK9qM7Esb7OxLW1MS50eHQ=?="

多谢回答

#4


看看RFC1341

#5


刚扫描了眼,内容看上去比较详细,回家再去慢慢磨,感谢先

#6


自己顶一下。还有人要分享下经验的没

#7


Content-Type 不是非得按照RFC来做,很多公司都不按常理出牌
在某些邮件系统中,解析的时候不管Content-Type是什么,根据filename,数据内容,来决定文件。

#8


引用 7 楼 ganzhezeng2 的回复:
Content-Type 不是非得按照RFC来做,很多公司都不按常理出牌
在某些邮件系统中,解析的时候不管Content-Type是什么,根据filename,数据内容,来决定文件。

你说的很对,我现在就是这样处理的,但是QQ的比较恶心啊,QQ发邮件上传的图片(不是作附件),别的邮箱都无法解析出名字,害我总以为自己解析出问题了。。

#9


引用 8 楼 dahaii0 的回复:
引用 7 楼 ganzhezeng2 的回复:
Content-Type 不是非得按照RFC来做,很多公司都不按常理出牌
在某些邮件系统中,解析的时候不管Content-Type是什么,根据filename,数据内容,来决定文件。

你说的很对,我现在就是这样处理的,但是QQ的比较恶心啊,QQ发邮件上传的图片(不是作附件),别的邮箱都无法解析出名字,害我总以为自己解析出问题了。。

现在也在做邮件的解析这个烂东西。尽管Python提供有用的库,但是在C++里使用python是在是折磨人,你这是用C++解析的吗?

#10


是的。。

#11


楼主你好,最近在做毕业设计,在邮件解析方面不是很会,在网上也找了一些资料,还是无法解析出正确的邮件内容。请问现在还有相关资料吗?我拿来参考一下 POP3协议如何解析邮件?

不懂算不算挖坟之类的。。。。

#1


这个是邮件发送的时候确定的。qq把附件当成application/octet-stream;163当成image/jpeg。对你来说没关系的。
结束的boundary相当于后边有个空的part,也没关系的。

#2


求点资料也好。。

#3


引用 1 楼 ndy_w 的回复:
这个是邮件发送的时候确定的。qq把附件当成application/octet-stream;163当成image/jpeg。对你来说没关系的。
结束的boundary相当于后边有个空的part,也没关系的。

发送的图片都不是作为附件发送的,就是发送HTML邮件时添加图片,发送附件的话2者都是显示

Content-Disposition: attachment;
 filename="=?GBK?B?0MK9qM7Esb7OxLW1MS50eHQ=?="

多谢回答

#4


看看RFC1341

#5


刚扫描了眼,内容看上去比较详细,回家再去慢慢磨,感谢先

#6


自己顶一下。还有人要分享下经验的没

#7


Content-Type 不是非得按照RFC来做,很多公司都不按常理出牌
在某些邮件系统中,解析的时候不管Content-Type是什么,根据filename,数据内容,来决定文件。

#8


引用 7 楼 ganzhezeng2 的回复:
Content-Type 不是非得按照RFC来做,很多公司都不按常理出牌
在某些邮件系统中,解析的时候不管Content-Type是什么,根据filename,数据内容,来决定文件。

你说的很对,我现在就是这样处理的,但是QQ的比较恶心啊,QQ发邮件上传的图片(不是作附件),别的邮箱都无法解析出名字,害我总以为自己解析出问题了。。

#9


引用 8 楼 dahaii0 的回复:
引用 7 楼 ganzhezeng2 的回复:
Content-Type 不是非得按照RFC来做,很多公司都不按常理出牌
在某些邮件系统中,解析的时候不管Content-Type是什么,根据filename,数据内容,来决定文件。

你说的很对,我现在就是这样处理的,但是QQ的比较恶心啊,QQ发邮件上传的图片(不是作附件),别的邮箱都无法解析出名字,害我总以为自己解析出问题了。。

现在也在做邮件的解析这个烂东西。尽管Python提供有用的库,但是在C++里使用python是在是折磨人,你这是用C++解析的吗?

#10


是的。。

#11


楼主你好,最近在做毕业设计,在邮件解析方面不是很会,在网上也找了一些资料,还是无法解析出正确的邮件内容。请问现在还有相关资料吗?我拿来参考一下 POP3协议如何解析邮件?

不懂算不算挖坟之类的。。。。