我们每天都自动发送带有附件的电子邮件,这种方式已经持续多年了。上周三,电子邮件方面的问题开始频繁出现。如果它100%失败,可能更容易排除故障。但是它似乎与一些命中非常不匹配,所以试图找出其中的模式一直很困难。
事件日志的描述是:由于邮件服务器故障,无法将邮件发送到收件人。(使用帐号1发送邮件(2021-10-27T07:43:28)。异常消息:无法向邮件服务器发送邮件。(邮件发送失败。)
相同的配置文件/帐户/参数在过去几年中一直存在。SMTP服务器为Office 365,端口为25,帐户使用基本认证。SQL Server作业代理帐户也没有任何更改。
我尝试过的事情无济于事-为数据库电子邮件帐户创建另一个帐户/配置文件,增加重试次数,将可执行文件的最小生存期更改为12小时而不是10分钟。我试图亲自运行sp_send_dbmail脚本(带和不带附件),它也是命中或错过(更经常错过)从我自己的帐户,所以我认为这不是一个现有的权限/访问问题。
我已经试着在网上搜索所有可能与此相关的想法。我已经将SQL Server 2017补丁到CU26,希望它可能是修复此问题的更新,但没有运气。我完全不知道这是怎么突然出现的。我愿意听取建议。我们的操作是小而简单的,因此我们在基础设施中没有任何非常复杂的东西。
提前感谢。
On edit:我确实尝试从我的本地机器(windows 10)运行一个powershell脚本,连接到office 365 smtp,并使用数据库邮件的电子邮件配置文件的凭据。它在我的本地机器上工作得很好。虽然补充说明,当我尝试从机器上执行sql server (windows server 2016)的powershell脚本时,它给了我一个关于发送4个参数的错误,其中一些谷歌搜索显示,它本质上是一个试图连接到smtp客户端的通用错误。我希望这些信息可以更清楚地说明这个问题是如何被封装的,到目前为止,我对我所尝试的一切都感到茫然。
这周我发现我们一直有同样的问题。它是在10月1日左右开始的,断断续续,但没有严重到引起我的注意。然而,本周,它变得更加严重。昨天,我无法从我们的3个数据库中收到任何一封电子邮件,所有邮件都是通过Office 365的SMTP路由的。
做一些挖掘,一个修复我能找到我相信解决这个问题是在这里:https://dba.stackexchange.com/a/233249/131993
一旦我们在SQL Server机器上使用了注册表可执行文件,我就能在第一次尝试时可靠地发送电子邮件。修复后,我发送了大约150条消息,没有任何问题。因为它是断断续续的,我不能100%肯定地说问题已经解决,但到目前为止,它看起来很好。