SQL Server在SQL Server 2014中停止发送数据库邮件

时间:2019-04-29 12:46:17

标签: sql-server dbmail

我们正面临sql server 2014中DB邮件的问题。

突然,它将停止向用户发送电子邮件,在msdb.dbo.sysmail_allitems中声明UNSENT状态。

请帮助。

1 个答案:

答案 0 :(得分:1)

检查是否有人禁用了代理或禁用了发送电子邮件。这两个查询应返回1。

SELECT value_in_use
FROM sys.configurations
WHERE name = 'Database Mail XPs';

SELECT is_broker_enabled 
FROM sys.databases 
WHERE name='MSDB';

传输队列中是否有记录?没有记录意味着好的。如果有记录,请注意字段transmission_status。这是写此消息在队列中的原因。通常,这是一条错误消息,说明为什么发送消息失败。

select * from msdb.sys.transmission_queue ;

尝试清理“ ExternalMailQueue”

WHILE EXISTS
(
    SELECT 'ExternalMailQueue' AS ServiceBrokerQueueName, 
           *
    FROM [msdb].[dbo].[ExternalMailQueue]
)
    BEGIN
        WAITFOR(
        RECEIVE TOP (1) conversation_group_id FROM [ExternalMailQueue]), TIMEOUT 1000;
    END;