各位大侠:
   小弟我使用TidSmtp编写邮件发送程序时发现这个组件工作时好时坏,有时邮件能发送出去,有时又发不出去,请问这个问题怎么解决?还有没有比这个更好用的组件?

解决方案 »

  1.   

    这位大侠,我使用这个控件发送邮件成功了,但是总收不到邮件,我的源代码如下所示,请帮我分析一下,不胜感谢!
    procedure TFileTransfer_Sendfrm.SendMail;
    var
      I : integer ;
    begin
      with IdSMTP1 Do
      begin
        Host := 'SMTP.21cn.com' ;
        try
          Connect() ;
        Except
          Application.MessageBox('连接邮件服务器失败,请检查网络是否正确连通!','提示',MB_ICONEXCLAMATION) ;
          DisconnectSocket ;
          Disconnect ;
          Exit ;
        end ;
        //Fill Email Info
        with IdMessage1 do
        begin
          From.Address := '[email protected]' ;
          IdMessage1.Recipients.Add.Address := MmoEmailAddrList.Lines.Text ;
          //附件
        end ;
        //验证用户身份
        IdSMTP1.Username := '我的邮箱用户名';
        IdSMTP1.Password := '我的邮箱密码' ;
        try
          IdSMTP1.Authenticate ;
        Except
          IdSMTP1.DisconnectSocket ;
          IdSMTP1.Disconnect ;
          Application.MessageBox('用户名和密码不匹配,请检查!','提示',MB_ICONERROR) ;
        end ;
        try
          IdSMTP1.Send(IdMessage1);
        Except
          IdSMTP1.DisconnectSocket ;
          IdSMTP1.Disconnect ;
          Application.MessageBox('由于网络原因导致邮件发送失败!','提示',MB_ICONERROR) ;
          Exit ; 
        end ;
        Application.MessageBox('邮件发送成功!','提示',MB_ICONINFORMATION) ;
        Self.Close ;
      end ;
    end;