看看我的程序
  for intIndex := 0 to Pred(Msg.MessageParts.Count) do begin
    if (Msg.MessageParts.Items[intIndex] is TIdAttachmentFile) then begin 
      li := lvMessageParts.Items.Add;
      li.ImageIndex := 8;
      li.Caption := TIdAttachmentFile(Msg.MessageParts.Items[intIndex]).Filename;
      li.SubItems.Add(TIdAttachmentFile(Msg.MessageParts.Items[intIndex]).ContentType);
    end else begin 
      if Msg.MessageParts.Items[intIndex] is TIdText then begin
        MailInfo.Lines.Clear;
        MailInfo.Lines.AddStrings(TIdText(Msg.MessageParts.Items[intIndex]).Body);
      end
    end;
  end;
为什么老是跳过第一种情况,判断不出来是不是附件,但是事实是附件啊,谁有更好的程序呢,可否给段收附件的代码。控件是INDY10的POP3

解决方案 »

  1.   

    if Msg.MessageParts.Items[i] is TIdAttachment then
      TIdAttachment(Msg.MessageParts.Items[i]).SaveToFile(FileName);
      

  2.   

    关键是现在判断邮件是不是含有附件判断不出来啊,就是不执行 Msg.MessageParts.Items[i] is TIdAttachment 下的程序段,都认为是TIdText
      

  3.   

    关键是现在判断邮件是不是含有附件判断不出来啊,就是不执行 Msg.MessageParts.Items[i] is  TIdAttachment 下的程序段,都认为是TIdText即使是附件但判断仍然不是TIdAttachment