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



以下代码是我的,可在我的机器(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.Smtp异常:发送邮件失败。--->System.Net.WebException:无法连接到远程服务器--->System.Net.Sockets.SocketException:连接尝试失败因为关联方在时间,或建立的连接失败,因为连接的主机未能响应

我从这台机器ping到了SMTP主机响应,它的响应正确。我不明白为什么我经常犯这个错误。

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

telnet QAsmtp.company.net 25

最新更新