有无读取eml格式文件,并解析的程序

tuiger2003 2003-05-23 12:14:06

我找不到BCB或VC++解析eml邮件的现成程序,事情很急。所以请教大家。

一、我知道BASE64码等的编程并实现过,但就是多附件等的处理上让我很恼火,会大大增加我的编程时间,不知有没有现成的处理eml邮件的程序。

二、另一个思路不知是否可行?就是用idpop3或是nmpop3? nmmsg? 这一类的控件,我不使用它从邮件服务器读取,而是将eml文件写入控件的读入缓冲区,然后调用decode进行解码? 可如何得到读入缓冲区的句柄呢?

如果有好的办法,请告诉我,分不够,我可以加分!
...全文
158 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
funcy333 2003-06-05
  • 打赏
  • 举报
回复
这个我看过,我发给你我的,在BCB下很好用 :)
funcy333 2003-06-05
  • 打赏
  • 举报
回复
好的,谢谢!
funcy333 2003-06-05
  • 打赏
  • 举报
回复
请告诉你我的邮箱,联系我,我把最好的解析类发给你!

funcy333@hotmail.com
wjh1014 2003-05-23
  • 打赏
  • 举报
回复
直接用IdPop3处理比较好。注意主题要自己解码,不然会是乱码。
这里推荐我兄弟invalid的写的解码函数。
http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=35151
IdPop3的大致用法如下。

IdPOP31->Connect(30000);
Msg->Clear();
IdPOP31->Retrieve(k,Msg);

Msg->SaveToFile(IntToStr(k)+".msg",false);

for(int i=0;i<Msg->Headers->Count;i++)

Memo1->Lines->Add(UnCode(Msg->Headers->Strings[i]));

if(Msg->ContentType.Pos("multipart/")>0){
for(int i=0;i<Msg->MessageParts->Count;i++){
if (dynamic_cast<TIdAttachment*>(Msg->MessageParts->Items[i])){ //附件
AnsiString fname=UnCode(dynamic_cast<TIdAttachment*>(Msg->MessageParts->Items[i])->FileName);
Memo1->Lines->Add(fname);
if(FileExists(fname))
DeleteFile(fname);
dynamic_cast<TIdAttachment*>(Msg->MessageParts->Items[i])->SaveToFile(fname);
}
else{
if(dynamic_cast<TIdText*>(Msg->MessageParts->Items[i]))
Memo1->Lines->AddStrings(dynamic_cast<TIdText*>(Msg->MessageParts->Items[i])->Body);
}
}
}
else{
Memo1->Lines->AddStrings(Msg->Body);
}



tuiger2003 2003-05-23
  • 打赏
  • 举报
回复
第一位兄弟,你理解错了,我的信已经下载下来了,存在我的机器里,我是想解码这个文件。
第二位兄弟,我不知道outlook中的dll接口是什么文件,可否告诉我名字?

另,我已经找到了VC的解析类 :)
lanren_me 2003-05-23
  • 打赏
  • 举报
回复
outlook中的dll接口你看看...

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧