msdb.dbo.sysmail_mailitems上sent_status值的含义

pat*_*ega 6 sql-server sp-send-dbmail

我正在从SQL Server发送电子邮件,并需要sent_statusmsdb.dbo.sysmail_mailitems表中列的值映射到更具描述性的内容.

到目前为止,我已经确定了两个值:

  • 1 ='已发送'
  • 2 ='失败'

是否有更多可能的值,如果有,它们代表什么?

sun*_*sen 17

sent_status, --0 new, not sent, 1 sent, 2 failure or 3 retry.
Run Code Online (Sandbox Code Playgroud)


AHi*_*ins 6

在相关表的MSDN页面msdb.dbo.sysmail_allitems上,说明sent_status如下:

邮件的状态.可能的值是:

已发送 - 邮件已发送.

未发送 - 数据库邮件仍在尝试发送邮件.

重试 - 数据库邮件无法发送邮件但尝试再次发送邮件.

失败 - 数据库邮件无法发送消息.

将两个视图连接在一起如下:

SELECT DISTINCT mi.sent_status, ai.sent_status 
FROM 
    msdb.dbo.sysmail_allitems ai
     FULL OUTER JOIN 
    msdb.dbo.sysmail_mailitems mi ON 
        ai.mailitem_id = mi.mailitem_id
Run Code Online (Sandbox Code Playgroud)

会产生一种关系,可以用以下CASE语句表达:

SELECT 
    CASE sent_status
        WHEN 0 THEN 'Unsent'
        WHEN 1 THEN 'Sent'
        WHEN 2 THEN 'Failed'
        WHEN 3 THEN 'Retrying'
        END AS sent_status_desc
FROM msdb..sysmail_mailitems
Run Code Online (Sandbox Code Playgroud)