我的网站从购买中发送确认邮件。95%的情况下,它是有效的。在单击运行付款并应发送电子邮件的“确认”按钮后,其他5%将得到以下例外:
详细信息:
异常:发送邮件失败。
内部异常:无法连接到远程服务器
内部异常(2):连接尝试失败是因为连接方在一段时间后没有正确响应,或者建立连接失败是因为连接主机没有响应72.167.234.197:25
发送电子邮件的代码如下:
Dim smtpClientPayPalSuccess As System.Net.Mail.SmtpClient = New System.Net.Mail.SmtpClient()
smtpClientPayPalSuccess.Host = "relay-hosting.secureserver.net"
smtpClientPayPalSuccess.Send(mailMessagePayPalSuccess)FYI:我已经与主机确认,我不需要任何凭据,也不需要与25不同的端口号。这也是通过https运行的。
你知道为什么这种情况只会发生一小部分时间吗?
谢谢。
戴夫
发布于 2011-03-06 16:53:21
我不知道为什么邮件会部分时间失效。据我所知,它可以安排对防火墙或邮件服务器本身的维护。
我建议您异步发送邮件,而不是作为“确认”按钮进程的一部分。只要把邮件放在一个(持久的)商店里,然后在中间的一段时间内继续发送它。
另外(也是衷心推荐的)是将邮件从应用程序发送到本地邮件服务器,并让该邮件服务器将邮件转发到72.167.234.197:25。这样,您就可以免费获得重试,并且向localhost发送邮件失败的可能性相当小(或者应该很小)。
发布于 2011-03-06 16:53:05
根据您的说明,可能而且很可能存在实际的网络错误,这些错误阻止站点与SMTP服务器连接/通信。这可能是流量过多的结果,也可能是网络连接缓慢的结果。我的建议是在电子邮件代码周围放置一个尝试/捕捉,或者在放弃之前尝试发送几次电子邮件。
当你提到这在95%的时间里起作用的时候,它表明这个问题很可能不在你的控制范围之内。
另外,您应该考虑不要放弃SMTP服务器的实际IP地址(这对问题没有任何影响)。
https://stackoverflow.com/questions/5211858
复制相似问题