用SINA发的带附件信用IDPOP3来接收,附件存出来是乱码,还会多出一个空白文件
而且主题也变成是“This is a multi-part message in MIME format.”
用163的发同样的信用IDPOP3来接收,就没这样的问题,这是怎么回事?

解决方案 »

  1.   

    你需要使用MIME解码,具体是Base64还是Quxxx(忘记怎么拼写的了)需要分析一下邮件信息头
      

  2.   

    IDPOP有自己解码,好象SINA发的信和163发的信不大一样呢
      

  3.   

    http://hubdog.csdn.net/Download/dlIndex.htm
    基于Indy的Email发送组件源码 [下载]
      

  4.   

    谢谢aiirii(ari-爱的眼睛) 
    我要的是收,新浪发的附件收回来是没解码过的
      

  5.   

    有没有人研究过 IDMessageClient中的下面这个过程
    procedure TIdMessageClient.ReceiveBody;
    把里面的S拿出来看就是原信的内容中间有一段
               if not Created then
                begin
                  if (
                    (AnsiPos('name', LowerCase(cRet)) = 0) and
                    (AnsiPos('text', LowerCase(cRet)) <> 0) or {do not localize}
                    (AnsiPos('multipart', LowerCase(cRet)) <> 0) or {do not localize}
                    (AnsiPos('message', LowerCase(cRet)) <> 0) or {do not localize}
                    (AnsiPos('attachment', LowerCase(cRet)) <> 0) or
                      {do not localize}
                    (LowerCase(cRet) = 'content-type:') {do not localize}
                    ) then
    这里的判断好象有问题
                    IMFDecoder^.MP := TIdText.Create(AMsg.MessageParts)
                  else
                    IMFDecoder^.MP := TIdAttachment.Create(AMsg.MessageParts);
    新浪发的在Boundary后面是Content-Disposition:不是content-type :有谁研究过吗?探讨一下