SMTP发送电子邮件失败由SmtpClinet(SmarterEmail服务器)

时间:2010-12-01 07:28:26

标签: .net email configuration smtp admin

我已配置并运行SmarterEmail服务器,为25端口,已配置的电子邮件帐户运行SMTP服务。

我创建了简单的.NET应用程序来通过我的电子邮件服务器发送电子邮件,这非常简单:

        public void SendEmail(EmailMessage message, string username, string password, string host, int port, bool enableSsl)
    {
        MailMessage mm = new MailMessage(message.From, message.To, message.Subject, message.Message);
        NetworkCredential credentials = new NetworkCredential(username, password);

        SmtpClient sc = new SmtpClient(host, 25);
        sc.DeliveryMethod = SmtpDeliveryMethod.Network;
        sc.UseDefaultCredentials = false;
        sc.EnableSsl = enableSsl;
        sc.Credentials = credentials;

        sc.Send(mm);
    }

此应用程序失败,异常:

  

未处理的异常:System.Net.Mail.SmtpException:发送邮件失败。 --->小号   ystem.Net.WebException:无法连接到远程服务器---> System.Net.S   ockets.SocketException:连接尝试失败,因为连接方   一段时间后没有正确回应,或建立连接错误   d因为连接的主机无法响应173.248.182.102:25      在System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot,SocketAddre   ss socketAddress)      在System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure,Sock   et s4,Socket s6,Socket& socket,IPAddress&地址,ConnectSocketState状态,   IAsyncResult asyncResult,Int32 timeout,Exception&例外)      ---内部异常堆栈跟踪结束---      在System.Net.ServicePoint.GetConnection(PooledStream PooledStream,Object ow   ner,布尔异步,IPAddress&地址,插座& abortSocket,Socket& abortSocket   6,Int32超时)      在System.Net.PooledStream.Activate(Object owningObject,Boolean async,Int32    超时,GeneralAsyncDelegate asyncCallback)      在System.Net.PooledStream.Activate(Object owningObject,GeneralAsyncDelegate    的AsyncCallback)      在System.Net.ConnectionPool.GetConnection(Object owningObject,GeneralAsyncD   elegate asyncCallback,Int32 creationTimeout)      在System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint)      在System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint)      在System.Net.Mail.SmtpClient.GetConnection()      在System.Net.Mail.SmtpClient.Send(MailMessage消息)      ---内部异常堆栈跟踪结束---      在System.Net.Mail.SmtpClient.Send(MailMessage消息)      在SendMail.MailService.SendEmail(EmailMessage消息,String username,Stri   D:\ Development \ Proje中的ng password,String host,Int32 port,Boolean enableSsl)   cts \ Experiments \ SendMail \ SendMail \ Program.cs:第36行      在D:\ Development \ Projects \ Experiment中的SendMail.Program.Main(String [] args)   s \ SendMail \ SendMail \ Program.cs:第52行

邮件服务器:mail.trackyt.net,port = 25,SSL = false。它不适用于我的(本地)机器。

同时,如果我将此应用程序复制到机器上,SmarterEmail(远程)正在运行,它就能成功运行!

我认为它被防火墙阻止了,在远程机器上启用了25 - 同样的结果。 禁用防火墙,本地和远程机器 - 结果相同。

其他诊断:

http://pingability.com/smtptest.jsp运行SMTP测试:

  

EHLO pingability.com   250-MAST-WIN2K8R2-STD您好[207.210.209.134]   250-SIZE 31457280   250-AUTH LOGIN CRAM-MD5   250好的   DEBUG SMTP:找到扩展名“SIZE”,arg“31457280”   DEBUG SMTP:找到扩展名“AUTH”,arg“LOGIN CRAM-MD5”   DEBUG SMTP:找到扩展名“OK”,arg“”   DEBUG SMTP:尝试进行身份验证   DEBUG SMTP:检查机制:登录PLAIN DIGEST-MD5 NTLM   AUTH LOGIN   334 VXNlcm5hbWU6   c3VwcG9ydA ==   334 UGFzc3dvcmQ6   c3VwcG9ydDEyMw ==   235验证成功

它说SMTP没问题。

来自我的机器的Telnet:

  

Microsoft Telnet> o mail.trackyt.net 25   正在连接到mail.trackyt.net ...无法在端口上打开与主机的连接   25:连接失败

来自SmarterMail机器的相同telnet是可以的。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

你在家里这样做吗?许多ISP阻止传出端口25。

在smartermail中,您可以为另一个端口添加SMTP侦听器。尝试为587添加一个,看看你是否可以连接到它(假设你有管理权限来执行此操作)。

- 戴夫