读取eml格式文件,并解析

直接用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);
        }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值