我有一个程序,其中包含一些非常简单的代码(地址和主机名编辑),它们通过内置的.NET SmtpClient发送电子邮件:
using (SmtpClient mail = new SmtpClient())
{
using (MailMessage message = new MailMessage())
{
message.To.Add(new MailAddress("someone@somewhere.com"));
message.IsBodyHtml = false;
message.From = new MailAddress("someone@somewhere.com");
message.Subject = DateTime.Now.ToString();
message.Body = DateTime.Now.ToString();
mail.Host = "somehostname";
mail.Port = 25;
mail.EnableSsl = false;
mail.DeliveryMethod = SmtpDeliveryMethod.Network;
mail.Send(message);
}
}
这在前3次运行正常,然后失败并显示以下消息:
交易失败。服务器响应是:此处没有SMTP服务 (模式:正常)
所以我把这个代码分解出来并把它放在一个测试程序中,只有一个执行这段代码的按钮。我运行了几十次,在调用之间有不同的时间(以防万一是时间问题),从来没有一次出错。
然后,我必须假设其他程序中有一些东西导致了这种失败,但我无法理解它可能是什么。我没有在这个例行程序之外做任何有关电子邮件的事情,也没有做任何我可以指出的奇怪事情,并认为可能是原因。
我在寻找建议,因为此时我很无能为力。