最近遇到两起关于SQL Server数据库邮件发送异常的案例,这些问题也有点意思,顺便记录一下。方便以后遇到类似问题的人参考,不要被这些问题弄得抓狂!

 

案例1:我们一台数据库服务器突然发送邮件都不行了,出现问题时,检查邮件发送记录,你会发现发送状态都是failed。

SELECT * FROM msdb.dbo.sysmail_faileditems

SELECT * FROM msdb.dbo.sysmail_mailitems

 

检查Database Mail Log,你会发现有下面一些错误日志,具体如下所示:

SQL Server数据库邮件发送异常案例_服务器

 

由于邮件服务器故障,无法将邮件发送给收件人。 (使用帐户 1 (2017-03-22T00:01:26) 发送邮件。 异常邮件: 无法将邮件发送到邮件服务器。 (SMTP 服务器要求安全连接或客户端未通过身份验证。 服务器响应为: 5.7.1 Client was not authenticated)。)

 

SQL Server数据库邮件发送异常案例_邮件发送_02

 

出现这个问题是因为在EXCHANGE服务器上的关于这台服务器的SMTP权限不知道什么原因被取消了,导致数据库使用sp_send_dbmail发送邮件时,客户端无法通过身份验证。这个找EXCHANGE的管理员增加SMTP权限即可解决。

 

 

案例2:使用SQLBackupAndFtp备份的一台数据库服务器也突然遭遇发送邮件失败,测试邮件发送时会遇到超时提示。这个原因,系统管理员帮忙找了好久,才发现是因为服务器上安装了Symantec的杀毒软件,他们在服务器端开启了Internet Email Auto-Protect功能。 导致Symante杀毒软件拦截SQLBackupAndFtp软件发送邮件。

 

SQL Server数据库邮件发送异常案例_发送邮件_03