该线程包含一些。
例如:看起来分配一个静态 IP可能会解决问题。
这个错误意味着 System.net.mail 无法找到 smtp 服务器。
答案会因您拥有固定 IP 还是动态 IP 而有所不同,但基本上,您需要为您的 smtp 服务器分配一个有效 IP。
对于固定 IP,这相对简单。使用动态 IP 需要进行一些调整。
打开 IIS 管理器并检查 smtp 服务器的属性。
在默认 SMTP 虚拟服务器的属性中,在“访问”选项卡中,在“连接控制”和“中继”对话框中,确保分配了您的本地 IP。(就我而言,它是 10.0.0.2...)
您可能还需要修改主机文件,将 127.0.0.1 指向您的机器名称。(\WINDOWS\system32\drivers\etc\hosts)
然后,在您的代码中,将您的机器名称分配给 smtp 客户端:
Dim client As New SmtpClient("yourmachinename") client.Send(mail)
或者,同一线程中的另一个人似乎找到了解决SMTP 连接未正确关闭的方法。
SmtpClient.ServicePoint.MaxIdleTime = 1
根据支持的解决方法进行
设置: http ://connect.microsoft.com/VisualStudio/feedback/Workaround.aspx?FeedbackID=146711
,这使得所有 smtp 正常工作。
这是一个完整的示例:
MailMessage msgMail = new MailMessage();
msgMail.To.Add(new MailAddress("info@somedomain.se"));
msgMail.Subject = "Message from web";
msgMail.IsBodyHtml = true;
msgMail.Body = "Test message";
SmtpClient Client = new SmtpClient(); /* uses settings form web.config */
Client.ServicePoint.MaxIdleTime = 1; /* without this the connection is idle too long and not terminated, times out at the server and gives sequencing errors */
Client.Send(msgMail);
msgMail.Dispose();