发送电子邮件时出错
Posted
技术标签:
【中文标题】发送电子邮件时出错【英文标题】:Error when sending Email 【发布时间】:2013-06-24 20:02:05 【问题描述】:请不要将此标记为重复。我可以找到很多与此相关的问题,但是,没有一个对我有帮助。以下是我在我的 c# 应用程序中用于发送电子邮件的内容,但我收到一个异常消息:
连接尝试失败,因为连接的一方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应 74.125.129.108:587
我的代码是:
try
var client = new SmtpClient("smtp.gmail.com", 587)
Credentials = new NetworkCredential("XXXX@gmail.com", "XXXX"),
EnableSsl = true
;
client.Send("XXXX@gmail.com", "XXXX@gmail.com", "test", "testbody");
Console.WriteLine("Sent");
Console.ReadLine();
catch
【问题讨论】:
gmail 说端口是 465,你也先在你的账户上启用 pop/imap 吗? @BobVale- 是的。我做到了。 用这样的异常处理策略怎么可能得到异常呢? ^^ 【参考方案1】:检查该端口是否未被您的防火墙阻止,尤其是未被您的公司防火墙阻止。
根据您的需要,有许多端口扫描器可用,这里有一个 suggestion 可以帮助您入门。
【讨论】:
我的防火墙已经关闭。如何检查我的公司防火墙阻止了我。我可以毫无问题地从浏览器访问 gmail 通过浏览器访问 gmail 使用标准端口,浏览器不接触 SMTP 端口(某处的 gmail 服务器处理这一切)。 感谢您的回答。实际上,该错误是由于公司防火墙上的端口阻塞造成的。再次感谢。因为我从来没有想过。【参考方案2】:检查您的端口是否正确,应该是端口 465(使用 SSL)和端口 587(使用 TLS)。
如果这不起作用,请尝试使用 SSL 的端口 25
编辑:
中间有代理服务器吗?尝试将以下内容放入您的 web.config
<system.net>
<defaultProxy>
<proxy usesystemdefault = "false"
proxyaddress="http://address:port"
bypassonlocal="false" />
</defaultProxy>
</system.net>
【讨论】:
我也检查过。但没有运气 在我的情况下,我使用的是 ParallelsPlesk 电子邮件,并且在文档中没有说设置任何端口!但我使用了 587,正如你所说的那样,它可以工作!...谢谢。跨度>以上是关于发送电子邮件时出错的主要内容,如果未能解决你的问题,请参考以下文章