ASP.NET 1.1 和 SMTP 的小问题

ASP.NET 1.1 和 SMTP 的小问题

服务器正在运行:

  • Windows Server Standard SP2 版
  • 带有 ASP.NET 1.1 的 IIS 7
  • 适用于 SMTP 的 IIS 6

该服务器托管许多运行 ASP.NET 1.1 的网站。这些网站使用 IIS6 上的内置 SMTP 服务器。

SMTP 一段时间内运行正常,但几周或几个月后,它将停止发送电子邮件。我尝试通过 Telnet 发送一封邮件,它似乎没有问题,所以 SMTP 服务器不是问题所在。

我尝试重新启动应用程序池,但没有任何效果。我还尝试重新启动 IIS 7.0 和 IIS 6.0,但仍然无法发送消息。

我们发现解决此问题的唯一临时方法是重新启动服务器。

是否存在我们可以清除的 ASP.NET 缓存,或者它导致了此问题?

更新:

已修复!

这是一个预感,但我重新启动了服务器中的打印后台处理程序和 DNS 客户端服务,现在电子邮件已成功发送。

但我现在仍然知道为什么 ASP.NET 1.1 项目会发生这种情况。

更新2:

今天又出现了这个问题!我很幸运,我以为我必须等几周才能再次测试它。

我首先重新启动了 DNS 客户端服务。没有效果,仍然无法发送电子邮件。然后我重新启动了打印后台处理程序服务,令我惊讶的是,它就是罪魁祸首!?????????

这怎么可能,怎么,为什么?嗯?

我永久禁用了打印后台处理程序。电子邮件仍然有效。我认为我们没有打印任何内容,或者打印后台处理程序除了打印之外还执行任何其他任务。

如果它确实有任何作用,请在下面评论。

更新 3:

该修复是暂时的。我今天发现 WINSOCK 拒绝来自 ASP.NET 的连接,但接受通过 telnet 邮件的连接。

仍在尝试找出发生这种情况的原因。

更新 4:

终于在应用了 WINSOCK 损坏修复程序后重新启动了。希望这能一直持续下去,并且错误不会再次出现。

将此添加到我的博客: http://www.moushigo.com/index.php/2012/02/22/trivial-smtp-asp-net-winsock-connectivity-issues/

答案1

您可能需要考虑使用外部电子邮件递送服务,例如亚马逊AWS官方博客邮件枪波特马克或者发送网格。这也可能会提高您的电子邮件的送达率。

答案2

已修复!

这是一个预感,但我重新启动了服务器中的打印后台处理程序和 DNS 客户端服务,现在电子邮件已成功发送。

但我现在仍然知道为什么 ASP.NET 1.1 项目会发生这种情况。

答案3

真正的问题是:为什么重新启动不相关的服务可以解决问题?(打印后台处理程序???)DNS 是相关的,我承认这一点。但这仍然很奇怪。我同意 Friism 的观点,使用外部 SMTP 服务器会更好,它们在 ASP.NET 中非常容易连接,因此您不妨直接转到白名单 SMTP 服务器,经过身份验证,而不是使用本地中继服务器。如今,由于有关垃圾邮件等的所有规则,中继电子邮件似乎是一个非常不确定的过程。

通过外部 SMTP 服务器发送的另一个技巧是使用端口 587 而不是端口 25。有些 ISP 不喜欢人们将端口 25 用于除了他们自己首选的邮件服务器之外的任何用途。

相关内容