现在是这样的,部分邮件的正文接收下来完全为空,很奇怪的问题
只有几封邮件是这样,在邮箱上直接收是没有问题
求教高手 ,这个问题在这里问了很多次都没有人能解答具体代码
接收的代码
procedure TRetrievemail.Retrieve_inmail();
var i:integer;
begin
 for i:=1 to IdPOP31.CheckMessages do
 begin
   IdMessage1.Clear;//清空msg里面的数据
   IdMessage1.ContentType:='text/html';
   IdMessage1.CharSet:='gb2312';
   IdPOP31.Retrieve(i,IdMessage1);  //----//
 end;
end;接收正文和附近的代码
procedure TRetrievemail.MessageParts_inmail();
var k:integer;
begin
 for k:=0 to  pred(IdMessage1.MessageParts.Count) do
     begin
       if   IdMessage1.MessageParts.Items[k]   is   TIdAttachment  then
       begin
          //保存附件信息
        end;
      if IdMessage1.MessageParts.Items[k]   is   TIdText   then
      begin //正文
        mail_text:=mail_text+TIdText(IdMessage1.MessageParts.Items[k]).Body.Text;
      end;
    end;
end;
现在接收的时候直接跳过for k:=0 to  pred(IdMessage1.MessageParts.Count) do
表示没有附件和正文,但我的邮箱是有正文的,请问那个高手能指教怎么做
急,在线等待,不够加分

解决方案 »

  1.   

    IdPOP31.Retrieve(i,IdMessage1);  
    ShowMessage(IdMessage1.Body);  //显示一下正文内容, 看看接收是否正常
      

  2.   

    没有用的,我跟踪过了,什么都没有,直接就跳过接收
    for k:=0 to  pred(IdMessage1.MessageParts.Count) do 
        begin      if  IdMessage1.MessageParts.Items[k]  is  TIdAttachment  then 
          begin 
              //保存附件信息 
            end; 
          if IdMessage1.MessageParts.Items[k]  is  TIdText  then 
          begin //正文 
            mail_text:=mail_text+TIdText(IdMessage1.MessageParts.Items[k]).Body.Text; 
          end; 
        end; 
    这个代码,因为 IdMessage1.MessageParts.Count也是0
      

  3.   

    IdPOP31.Retrieve(i,IdMessage1);  
    ShowMessage(IdMessage1.Body);  //显示一下正文内容, 看看接收是否正常
    你是高手,谢谢结帖
      

  4.   

    楼主啊,我的更加邪恶,我的body里面全是#$d#$a之类的乱码,我疯狂了