当我使用 sp_send_dbmail 存储过程时,我收到一条消息,指出我的邮件已排队。然而,它似乎永远不会被交付。如果我运行以下 SQL,我可以在队列中看到它们:

SELECT * FROM msdb..sysmail_allitems WHERE sent_status = 'unsent'

此 SQL 返回 1:

SELECT is_broker_enabled FROM sys.databases WHERE name = 'msdb'

此存储过程返回 STARTED:

msdb.dbo.sysmail_help_status_sp

适当的帐户和配置文件已经设置,邮件一度可以正常运行。msdb.dbo.sysmail_event_log 中没有错误。

有帮助吗?

解决方案

可能有很多东西。例如,我已经看到(是的,实际上看到)这种情况发生在:

  • 域控制器重新启动
  • Exchange 服务器重新启动
  • 路由器中断
  • 服务帐户变更
  • SQL Server 磁盘空间不足

所以直到它再次发生之前,我不会对此感到惊慌。

其他提示

你有没有尝试过

sysmail_stop_sp

然后

sysmail_start_sp

我遇到了同样的问题,这就是我能够解决它的方法。

Sql Agent >> 属性 >> 警报系统 >> 选中 DBMail 的启用框 并添加个人资料。

重新开始 代理从那时起就开始工作了。

希望这会有所帮助,_ub

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top