System.Net.Mail.SmtpException:操作已超时/无法连接服务器

时间:2015-03-18 22:16:59

标签: c# asp.net iis smtp timeout

以下代码是我的,可以在我的机器上运行(Windows 7):

var fromAddress = "pxx@company.com";
var toAddress = "pyyyj@company.com";
const string fromPassword = "dfdfdf";
string subject = "Test Mail Please ignore";
string body = "Test";
body += "Email: ";
body += "Subject: ";
body += "Question:";
var smtp = new System.Net.Mail.SmtpClient();
smtp.Host = "QAsmtp.company.net";
smtp.Port = 25;
//'smtp.EnableSsl = true;
smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
smtp.Credentials = new System.Net.NetworkCredential("csweb123lab", fromPassword);
smtp.Timeout = 300000;
smtp.Send(fromAddress, toAddress, subject, body);

我复制了这段代码并运行到公司网络中的远程计算机Windows 2008 R2 SP1(64位)。

我收到以下错误消息:

  

System.Net.Mail.SmtpException:发送邮件失败。 --->   System.Net.WebException:无法连接到远程服务器--->   System.Net.Sockets.SocketException:连接尝试失败   因为关联方在一段时间后没有正确回应   时间或已建立的连接因连接的主机而失败   未能回复

我从此计算机上ping了SMTP主机响应并正确响应。我不明白为什么我经常会收到这个错误。

1 个答案:

答案 0 :(得分:0)

对我来说听起来像防火墙。即使ping工作,您可能会阻止端口25。使用telnet测试端口是否从DOS命令行打开,如下所示:

telnet QAsmtp.company.net 25