我用Demo收取电子邮件都收不到,发送的Demo也发不出去

解决方案 »

  1.   

    我用的都好好的,是不是pop3服务器与smtp服务器的地址写错了?
      

  2.   

    下面是发送邮件的代码:
      Try
        if not IDSMTP1.Connected then
          IDSMTP1.Connect;
        if IDSMTP1.Connected then
        begin
          with IdMsgSend do
          begin
            Body.Assign(Content.Lines);
            From.Name :=  StrSenderName;
            From.Address := StrSender;
            Recipients.Add;
            Recipients[0].Address := QRecName;
            Recipients.Add;
            Recipients[0].Address := JRecName;
            Recipients.Add;
            Recipients[0].Address := QRecName;
            Recipients.Add;
            Recipients[1].Address := JRecName;
            Subject := Title.Text;
            ReplyTo.EMailAddresses := strsender;
          end;
          IDSMTP1.Send(IDMsgSend);
      Except
        if IDSMTp1.Connected then
          IDSMTP1.Disconnect;
        ShowMessage('发送邮件出错!');
      end;
      

  3.   

    接收邮件,并写入表中  try
        if IDPOP31.Connected then
        begin
          IDPOP31.Disconnect;
        end;
        IDPOP31.Connect;
        FMsgCount := IDPOP31.CheckMessages;
        if FMsgCount > 0 then
          RetrievePOPHeaders(FMsgCount);
        IDPOP31.Disconnect ;
       except
         showmessage('接收邮件失败!')
       end;procedure RetrievePOPHeaders(intMsgCount : integer);
    Var intIndex1: integer;
        intIndex2: integer;
        itm: TListItem;
        StrSender ,StrName,StrSubject,StrContent : string;
        bl_AttachFile :boolean;
        ESize : integer;
    begin
      for intIndex1 := 1 to intMsgCount do
      begin
        ShowFileStatus('正在接收第'+intToStr(intIndex1)+'封邮件...');
        Msg.Clear;
        IDPOP31.Retrieve(intIndex1, Msg);
        StrSender := Msg.From.Address;
        StrName := Msg.From.Name;
        StrSubject := Msg.Subject; 
        LstAttachFile.Items.Clear;
        ESize := IDPOP31.RetrieveMailBoxSize ;
        for intIndex2 := 0 to Pred(Msg.MessageParts.Count) do
        begin
          if Msg.MessageParts.Items[intIndex2] is TIdAttachment then
          begin
            LstAttachFile.Items.Add( TIdAttachment(Msg.MessageParts.Items[intIndex2]).Filename);
            TIdAttachment(Msg.MessageParts.Items[intIndex2]).SaveToFile(Frm_Main.s_AttachFilePath+TIdAttachment(Msg.MessageParts.Items[intIndex2]).Filename);
            bl_AttachFile := true;
          end
          else
          begin //body text
            if Msg.MessageParts.Items[intIndex2] is TIdText then
            begin
              Memo1.Clear;
              Memo1.Lines.AddStrings(TIdText(Msg.MessageParts.Items[intIndex2]).Body);
            end
          end;
        end;
        With AdoQryTemp do
        begin
          Close;
          Sql.CLear;
          Sql.Add('insert into EMailTbl(ESender,ESenderName,ESubject,EContent,EAttachFile,EState,EGetTime,ESize)');
          Sql.Add('Values('''+strSender +''','''+StrName +''','''+StrSubject+''','''+Memo1.Text +''','''+lstAttachFile.Items.Text+''',0,'''+DateToStr(Msg.Date)+''','+intToStr(ESize)+')');
          ExecSql;
          Close;
       end;
       IDPOP31.Delete(intIndex1);
      end;
    end;
      

  4.   

    To:编程浪子,你试验过你的代码了吗,我看好像和Demo一样哦,你可以试着收一下Mail,收下来的邮件主题之类的存放到ListView的相应位置,就像Demo的界面那样,你看是否不行,而且Demo的那个例子收邮件居然会无法读,日期错误,居然是1899年12月1日。
      

  5.   

    我的代码是在我写的一个应用系统上拷下来的,程序是没有问题的,你的pop3 服务器与smtp服务器设置有没有问题?
      

  6.   

    我觉得现在有很多免费的E-Mail的网站都没有SMTP和POP3了啊,其他的设置应该没有问题