1

我的 WinForms C# 程序发送电子邮件。我用过MailMessageSmtpClient。在SmtpClientI 的构造函数中传递了smtp.gmail.com587 端口。

这是在我朋友的电脑上运行的,但是当我尝试它时,我得到了这个错误:

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
4

2 回答 2

4

尝试一些基本的网络故障排除。首先,确保您可以通过 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 名称解析,也可以Resolve-DnsName在 PowerShell 中使用,但可能仅在 3.0 中。

此外,检查任何防火墙设置。

于 2013-03-04T18:26:27.733 回答
0

将 SmtpClient 中的 EnableSsl 标记为 true。

smtpClient.EnableSsl = true;

于 2014-05-27T11:38:28.617 回答