分享曲折的邮件解码经验

最近完成了一项目,其中有需要接收邮件并对邮件提取内容的功能。
我是喜欢用 Delphi 7的,对邮件的操作首选当然是Indy 啦,方便快捷。我安装的是 Indy 10.1.5,拖拉 IdPOP3 和 IdMessage 再加几行代码就完成接收并提取出内容附件了(代码略)。
很可惜,到底还是外国人开源开发的,对我国内复杂的邮箱系统环境还不大适应。分析提取邮件内容时,不是取不到标题,就是取不到附件。标题内容乱码问题更要人头痛。面对不同邮件服务器有不同内容编码:=?iso-8859-1?,=?GB2312?,=?GBK?,不要说要我另外再解码吧。 对于邮件内容里没有使用 --=_PAR_V%20AT%20163.COM--  之类分隔内容项的邮件,更是一塌糊涂。而且 IdPOP3 接收邮件后会在内容里加上一些声明,而这些声明会对其它组件( Jmail )分析邮件带来麻烦。
失望过后,我找回以前写网页喜欢使用的Jmail。在 GOOGLE 下载了个可使用POP3功能的 Jmail4.3 版,注册、引用、编码很顺利(代码略)。 接收 OUTLOOK 、 OUTLOOK EXPRESS 、 Foxmail 5的邮件都很稳定,标题内容显示正常。可惜好景不长,当接收来自 Sohu、Sina等网页上编写发来的邮件就显得不知所措。最先是 Sina 的WEB MAIL,标题是使用 =?GBK? 编码,提取后显示就成真正的乱码了(类似你用记事本打开EXE文件)。接着是 Sohu 的WEB MAIL,附件和邮件内容显示在一起。还有一些邮箱系统底层的自动退信等等特殊邮件,都提取出错。
失望、着急、游荡...
情急无助之下去翻找了网上一些小型邮件系统软件来,希望能找到可用资料。国内的小型邮件系统一般都是在指定用户数内免费使用的,安装方便,运行稳定, WEB 界面又是使用 ASP 编写的特点。如 WebEascMail,CMail,MuseMail,这些系统都会有链接库可调用。当我把 MuseMail/Bin/MuseMail_Dll.dll 引用后显示接口时,眼前一亮:LoadMail、BuildMail、AttachmentCount 这些接口正是我要找的。非常感谢作者没有对调用这些接口作注册限制(我下载的是 2.7版)。因为此链接库没有 POP3 接收功能,所以我使用Jmail作接收+MuseMail_Dll提取内容配合使用,接收解释各大网站的 WEB MAIL 都稳定正常,只是对一些邮件统计附件数有误。
我也对WebEascMail,CMail的链接库作了引用,发现 WebEascMail 对邮件操作是内部邮件目录方式操作读取。CMail 其链接库与系统绑定得很紧,每一步操作都先要进行用户 LOGIN。都是难调用的。
本文目的是给有需求对邮件内容作读取的朋友说一下我的经验。实现代码就不写了,有需要的朋友可欢迎指正与交流。

附带一些不常见的邮件组件读入邮件文件作解释内容的方法:
Jmail:
JmailMessage1.ParseMessage(memo1.Text);

Indy:
IdMessage1.LoadFromFile(Edit1.text);
IdMessage1.MessageParts.CountParts;

MuseMail:
MuseMailMessage1.LoadMail(Edit1.Text);
MuseMailMessage1.BuildMail;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值