0

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

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

请帮忙。

4

1 回答 1

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 ;

尝试清理“外部邮件队列”

WHILE EXISTS
(
    SELECT 'ExternalMailQueue' AS ServiceBrokerQueueName, 
           *
    FROM [msdb].[dbo].[ExternalMailQueue]
)
    BEGIN
        WAITFOR(
        RECEIVE TOP (1) conversation_group_id FROM [ExternalMailQueue]), TIMEOUT 1000;
    END;
于 2019-04-29T13:11:10.210 回答