以下代码是我的,可以在我的机器上运行(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主机响应并正确响应。我不明白为什么我经常会收到这个错误。
答案 0 :(得分:0)
对我来说听起来像防火墙。即使ping工作,您可能会阻止端口25。使用telnet测试端口是否从DOS命令行打开,如下所示:
telnet QAsmtp.company.net 25