我们正面临sql server 2014中DB邮件的问题。
突然,它将停止向用户发送电子邮件,在msdb.dbo.sysmail_allitems中声明UNSENT状态。
请帮助。
答案 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;