发送电子邮件时出错

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,正如你所说的那样,它可以工作!...谢谢。跨度>

以上是关于发送电子邮件时出错的主要内容,如果未能解决你的问题,请参考以下文章

通过 Codeigniter 发送带附件的电子邮件时出错

通过 Gmail SMTP 发送电子邮件时出错

从服务器从 nodemailer 发送电子邮件时出错

从 Java 发送电子邮件时出错(SSL 握手异常)

尝试安装 Qxt 以发送电子邮件时出错

使用 Mandrill (php) 发送电子邮件时出错