主要代码如下:        idmessage1.CharSet:= 'gb2312';
       idmessage1.ContentType :='multipart/*' 
       idmessage1.ContentTransferEncoding:='base64'; 
        IdPOP31.Retrieve(i,idmessage1) ; 
       bodyText:=idmessage1.Body.Text;bodyText值为:
#$D#$A'???'#$D#$A'  ????????????????????????'#$D#$A'  ??????????????????????????????????????'#$D#$A'  ?????????????????????????????????????????????????????????????????????????????'#$D#$A'  ?????'#$D#$A实际值为汉字请教高手

解决方案 »

  1.   

    var
      mailcount : integer;
      i : integer;
      tmp : string;
    begin
      try
        IdPOP31.UserName := Edit_recv_user.Text; // 服务器上的用户名
        IdPOP31.Password := Edit_recv_pass.Text; // 服务器上的密码
        IdPOP31.Host := Edit_recv_server.Text; // 服务器SMTP地址 如:smtp.163.com
      //  IdPOP31.port := strtoint(Edit4.Text); // 服务器端口25;
        IdPOP31.Connect();    //连接到POP3服务器
      except
        ShowMessage('接收邮件失败,请重试!');
        exit; // 连接失败 的话 退出该执行过程
      end;
      mailcount := IdPOP31.CheckMessages;  //得到邮箱邮件的各数
      for i:=1 to mailcount do   //遍历每一封邮件
      begin
         IdMessage1.Clear;     IdPOP31.retrieveHeader(i,IdMessage1);  //得到邮件的头信息
         tmp := IdMessage1.Subject;      //得到邮件的标题
         Memo_recv_content.Lines.Add(tmp);
         IdPOP31.Retrieve(i,IdMessage1);  //接收到邮件所有内容
         idmessage1.SaveToFile(tmp+'.txt');
         tmp := IdMessage1.Body.Text;   //邮件正文
         Memo_recv_content.Lines.Add(tmp);
      end;
      IdPOP31.Disconnect;   //断开连接
    end;