我的 WinForms C# 程序发送电子邮件。我使用过 MailMessage 和 SmtpClient。 在 SmtpClient 的构造函数中,我传递了 smtp.gmail.com 和端口 587。
这是在我 friend 的电脑上运行的,但是当我尝试它时我得到了这个错误:
System.Net.Mail.SmtpException: Failure sending mail. ---> System.Net.WebException: The remote name could not be resolved: 'smtp.gmail.com'
System.Net.Mail.SmtpException: Operation Timed out
如何修复此错误?为什么它特定于我的计算机?
If i use port 25 i get exception : Operation Timed out
If i use port 587 i get exception : The remote name could not be resolved: 'smtp.gmail.com'
if i use port 465 i get exception : Operation Timed out
请您参考如下方法:
尝试一些基本的网络故障排除。首先,确保你可以通过 IP 地址 ping 某些东西,这不需要 DNS 工作,所以尝试 ping 173.194.41.86 看看你是否得到一些回复。
然后使用 ping www.gmail.com 从您的计算机 ping www.gmail.com。这应该告诉您您的网络是否可以将任何名称解析为 IP 地址。您应该在与上述相同的响应中获得四个 IP 地址 ping。
如果没有,那么您的 DNS 配置有问题。如果您有静态 IP 地址,则需要与网络管理员联系或将 DNS 服务器设置为与工作机器相同。如果它是动态的,那么您可以尝试 ipconfig/renew 从 DHCP 服务器获取最新设置。
如果 ping www.gmail.com 有效,则尝试 ping smtp.gmail.com 查看 smtp 主机是否正在解析。如果没有,则仍然存在 DNS 问题,但仅影响 smtp 主机名。
尝试 ipconfig/flushdns 清除本地 DNS 缓存,然后重试。如果不是在生产服务器上,请尝试重新启动。
您还可以使用 nslookup 检查 DNS 名称解析,也可以在 PowerShell 中使用 Resolve-DnsName,不过可能只在 3.0 中。
此外,检查所有防火墙设置。
