在 SQL Server 2005 机器上,我安装并正确配置了 DBMail。我可以使用“通知操作员”和 EXEC msdb.dbo.sp_send_dbmail 来排队电子邮件。
但问题是排队的邮件永远不会通过。我在查询时看到队列中有 10 封电子邮件
SELECT * FROM msdb.dbo.sysmail_unsentitems
但是,如果我重新启动SQL Server 服务,所有邮件都会通过,并且我会在收件箱中收到电子邮件。
到目前为止,这是我能找到的唯一模式。
所以我的问题是:有没有办法对 DBmail 进行故障排除?我在 MSDN 上阅读了一些步骤,但它们并没有多大帮助。非常感谢任何可能有帮助的文章 URL。
您是否在 MSDB 上启动了服务代理?您需要打开服务代理才能处理邮件队列。
阅读Stackoverflow上的这篇文章。另一个可能对您有帮助的链接是how to troubleshoot a queue in sql。您还可以使用此链接在 MSDB 上启动并运行您的服务代理。
希望这些链接可以帮助你。
感谢您的所有评论。我找到了问题的根源。
Sql Agent >> Properties >> Alert System (tab) >> Enable Mail profile (check) 然后选择适当的邮件系统并添加邮件配置文件。
数据库邮件的 MSDN 链接
这解决了这个问题。
当我查看 Sql 代理日志时,它有一个日志条目为“无法启动邮件会话(原因:未定义邮件配置文件)”。使用这个关键字,我能够在线搜索并获得一些帮助。