首页 > 解决方案 > SQL Server DatabaseMail突然频繁失败

问题描述

我们每天都会自动发送带有附件的电子邮件,而且多年来一直如此。上周三,电子邮件方面的事情开始频繁失败。如果它 100% 失败,则可能更容易排除故障。但它似乎非常错过了一些命中,所以试图找出其中的模式一直很困难。

事件日志中的描述是:由于邮件服务器故障,无法将邮件发送给收件人。(使用帐户 1 (2021-10-27T07:43:28) 发送邮件。异常消息:无法向邮件服务器发送邮件。(发送邮件失败。)。)

在过去的几年里,相同的配置文件/帐户/参数已经到位。SMTP 服务器是 Office 365,端口 25,并为帐户使用基本身份验证。SQL Server Jobs Agent 帐户也没有任何变化。

我尝试过的事情无济于事 - 为数据库邮件帐户创建另一个帐户/配置文件,增加重试次数,将可执行文件的最短生命周期更改为 12 小时而不是 10 分钟。我尝试亲自运行 sp_send_dbmail 脚本(带附件和不带附件),并且它也被我自己的帐户命中或错过(更经常错过),所以我认为这不是现有的权限/访问问题。

我试图在互联网上搜索所有可能与此相关的想法。我已将 SQL Server 2017 修补到 CU26,希望它可能是修复此问题的更新中的某些内容,但没有运气。我完全不知道这是如何突然出现的。我愿意接受建议。我们的操作小而简单,因此我们在基础设施中没有任何非常复杂的东西。

提前致谢。

编辑时:我确实尝试从连接到 office 365 smtp 的本地计算机(Windows 10)运行 powershell 脚本,并使用数据库邮件的电子邮件配置文件的凭据。它可以在我的本地机器上正常工作。虽然补充说明,当我尝试从 sql server 所在的机器(windows server 2016)执行 powershell 脚本时,它给了我一个关于发送中 4 个参数的错误,通过一些谷歌搜索发现它本质上是一个通用的尝试连接到 smtp 客户端时出错。我希望通过这些信息,它可以更清楚地说明这件事是如何被封装的,因为到目前为止,我对我所尝试的一切都感到茫然。

标签: sql-serversp-send-dbmaildatabase-mail

解决方案


这周我发现我们遇到了同样的问题。它实际上是在 10 月 1 日左右开始的,时断时续,但还没有严重到引起我的注意。不过,本周它变得更加严重。昨天,我无法从我们的 3 个数据库中的任何一个中收到一封电子邮件,所有这些都通过 Office 365 的 SMTP 路由。

做一些挖掘,我可以找到一个我认为可以解决这个问题的修复方法:https ://dba.stackexchange.com/a/233249/131993

一旦我们在带有 SQL Server 的机器上使用了该注册表可执行文件,我就能够在第一次尝试时可靠地发送电子邮件。修复后我发送了大约 150 条消息,没有任何问题。因为它是断断续续的,我不能 100% 确定问题已解决,但到目前为止看起来还不错。


推荐阅读