我的网站通过购买发送确认电子邮件。 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)
仅供参考:我已经向托管确认我不需要任何凭据或不同于25的端口号。这也是通过https运行的。
任何想法为什么这只会在一小部分时间内发生?
感谢。
戴夫
答案 0 :(得分:1)
我不知道为什么邮件会在一段时间内失败。据我所知,可以安排防火墙或邮件服务器本身的维护。
我建议您异步发送邮件,而不是“确认”按钮过程的一部分。只需将邮件放在(持久性)商店上,并继续尝试在一段时间内发送邮件。
另外(并且衷心推荐)是将邮件从您的应用程序发送到本地邮件服务器,并让该邮件服务器将邮件转发到72.167.234.197:25
。这样你就可以免费获得重试,并且发送邮件到localhost
失败的可能性非常小(或者它应该很小)。
答案 1 :(得分:0)
根据您的说明,很可能存在实际的网络错误,导致您的网站无法与SMTP服务器连接/通信。这可能是流量过大或网络连接速度缓慢的结果。我的建议是对电子邮件代码进行try / catch,也许在放弃之前重试发送几次电子邮件。
如果你提到这种情况在95%的情况下有效,那就表明这个问题很可能超出你的控制范围。
作为旁注,您应该考虑不要放弃SMTP服务器的实际IP地址(这对问题没有影响)