首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SmtpClient.Send异常

SmtpClient.Send异常
EN

Stack Overflow用户
提问于 2011-03-06 16:48:23
回答 2查看 1.7K关注 0票数 1

我的网站从购买中发送确认邮件。95%的情况下,它是有效的。在单击运行付款并应发送电子邮件的“确认”按钮后,其他5%将得到以下例外:

详细信息:

异常:发送邮件失败。

内部异常:无法连接到远程服务器

内部异常(2):连接尝试失败是因为连接方在一段时间后没有正确响应,或者建立连接失败是因为连接主机没有响应72.167.234.197:25

发送电子邮件的代码如下:

代码语言:javascript
复制
Dim smtpClientPayPalSuccess As System.Net.Mail.SmtpClient = New System.Net.Mail.SmtpClient()
smtpClientPayPalSuccess.Host = "relay-hosting.secureserver.net"
smtpClientPayPalSuccess.Send(mailMessagePayPalSuccess)

FYI:我已经与主机确认,我不需要任何凭据,也不需要与25不同的端口号。这也是通过https运行的。

你知道为什么这种情况只会发生一小部分时间吗?

谢谢。

戴夫

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-06 16:53:21

我不知道为什么邮件会部分时间失效。据我所知,它可以安排对防火墙或邮件服务器本身的维护。

我建议您异步发送邮件,而不是作为“确认”按钮进程的一部分。只要把邮件放在一个(持久的)商店里,然后在中间的一段时间内继续发送它。

另外(也是衷心推荐的)是将邮件从应用程序发送到本地邮件服务器,并让该邮件服务器将邮件转发到72.167.234.197:25。这样,您就可以免费获得重试,并且向localhost发送邮件失败的可能性相当小(或者应该很小)。

票数 1
EN

Stack Overflow用户

发布于 2011-03-06 16:53:05

根据您的说明,可能而且很可能存在实际的网络错误,这些错误阻止站点与SMTP服务器连接/通信。这可能是流量过多的结果,也可能是网络连接缓慢的结果。我的建议是在电子邮件代码周围放置一个尝试/捕捉,或者在放弃之前尝试发送几次电子邮件。

当你提到这在95%的时间里起作用的时候,它表明这个问题很可能不在你的控制范围之内。

另外,您应该考虑不要放弃SMTP服务器的实际IP地址(这对问题没有任何影响)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5211858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档