meaning of the values of sent_status on msdb.dbo.sysmail_mailitems

34.9k views Asked by At

I am sending emails from SQL Server, and need to map the values of the sent_status column on the msdb.dbo.sysmail_mailitems table to something more descriptive.

So far I have identified two values:

  • 1 = 'Sent'
  • 2 = 'Failed'

Are there any more possible values, and if so what do they represent?

2

There are 2 answers

1
sunysen On BEST ANSWER
sent_status, --0 new, not sent, 1 sent, 2 failure or 3 retry.
0
AHiggins On

On the MSDN page for the related msdb.dbo.sysmail_allitems table, the description for sent_status says:

The status of the mail. Possible values are:

sent - The mail was sent.

unsent - Database mail is still attempting to send the message.

retrying - Database Mail failed to send the message but is attempting to send it again.

failed - Database mail was unable to send the message.

Connecting the two views together as follows:

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

Will yield a relationship, which can be expressed with the following CASE statement:

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