11

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

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

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

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

4

2 回答 2

21
sent_status, --0 new, not sent, 1 sent, 2 failure or 3 retry.
于 2014-11-18T13:17:26.423 回答
8

在相关表的 MSDN 页面msdb.dbo.sysmail_allitems上,描述为sent_status

邮件的状态。可能的值为:

sent - 邮件已发送。

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

重试 - 数据库邮件未能发送消息,但正在尝试再次发送。

failed - 数据库邮件无法发送消息。

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

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

会产生一个关系,可以用下面的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
于 2015-09-28T19:53:41.550 回答