用CoolMail吧,TNMPOP3接收有问题,我不用它了。

解决方案 »

  1.   

    OnDecodeStart(var FileName: string);
    在这个事件中指定附件的文件名,即可
      

  2.   

    这个我知道,但接收下来的zip文件是坏的,打不开
    你不妨试试吧,设置几个属性,写几行代码就行了
    用foxmail收没问题
      

  3.   

    不是我是说CoolMail,TNMPOP3我是拿它来做GetSummary,因为Coolmail的GetHeader没有做好,
    调用GetHeader其时就是把整个信和附件下载过来,很慢,所以我用TNMPOP3和Coolmail 配合使用
      

  4.   

    你试一下吧,只要能把附件收下来(不要是坏的zip文件)
      

  5.   

    CoolPop3的Pop3服务器在哪设置?
    在TCoolMailMessage中吗?
      

  6.   

    呵呵,前段时间我就是用TNMPOP3做数据接收,不行,大大的不行,所以才用CoolMail
    不过除了收附件的信,是用Coolmail,其它的都是TNMPOP3,TNMSMTP做的。
      

  7.   

        FPOP3.Host := FPOP3Host;
        FPOP3.Port := FPOP3Port;
        FPOP3.UserID := FPOP3UserID;
        FPOP3.Password := FPOP3Password;
      

  8.   

    什么意思?Fpop3什么类型?TCoolPop3?
    没有host属性
      

  9.   

    var 
      FPOP3: TCoolPOP3;
    begin
      FPOP3 := TCoolPOP3.Create(Nil);
      FPOP3.Host := FPOP3Host; //string;
      FPOP3.Port := FPOP3Port;  //string;
      FPOP3.UserID := FPOP3UserID;//string
      FPOP3.Password := FPOP3Password; //string
      FPOP3.Connect;
    end;
      

  10.   

    大概不会弄错吧?TCoolPop3没有 host,port等属性
      

  11.   

    也可能是你发给我的coolmail不全
    只有一个coolmail.pas文件
      

  12.   

    刚才看错了,那是TNMPOP3的。
    function TRecvFile.CheckCoolMail: Boolean;
    var
      FCoolPOP3: TCoolPOP3;
    begin
      FCoolPOP3 := TCoolPOP3.Create(nil);
      FCoolPOP3.CmdDataSocket.Host := FPOP3Host;
      FCoolPOP3.CmdDataSocket.Port := FPOP3Port;
      FCoolPOP3.UserID := FPOP3UserID;
      FCoolPOP3.Passwd := FPOP3Password;
      if FCoolPOP3..CmdDataSocket.Connect <> EC_OK then
         raise Exception.Create('Error');
      if FCoolPOP3.Connect <> EC_OK then
        raise Exception.Create('Error');
      if FCoolPOP3.Login <> EC_OK then
        raise Exception.Create('Error');
      FCoolMail := TCoolMailMessage.Create(nil);
      FCoolMail.UseBuffer := True;
      FCoolMail.MailType := mtMime;
      FCoolPOP3.ReceiveMail(Index, FCoolMail); //接收第Index封信。
      FCoolPOP3.MailBoxInfo;
      if FCoolMail.LoadMail then //解码
      begin
        for I := 0 to FCoolMail.AttFiles.Count - 1 do
          FCoolMail.AttFiles.Items[I].SaveContentBodyToFile('附件的文件名'); 
      end;
      //Free All
    end;
      

  13.   

    Coolmail只有一个文件,不过下载的有demo,等会我再发给你吧。
      

  14.   

    那发过只有一个文件的我修改过的,你可以用现在发过去的,是原来我down的,有些不同,
      

  15.   

    还没收到  [email protected]
      

  16.   

    我记得有一个ZIP控件 你可以down 一个啊!!
    很好用得
      

  17.   

    谢谢各位,我已经把问题解决了,是delphi自带的NMPop3有问题,很多编码格式不支持,
    换成CoolMail就行了
    Zip控件是Abbrevia
      

  18.   

    建议大家别用delphi的破NMSMTP,NMPop3
    连indy都有问题