Om du använder Database Mail i SQL Server kan du använda sysmail_allitems
visa för att kontrollera status för alla e-postmeddelanden som Database Mail har bearbetat.
Exempel
Här är ett exempel på hur du kontrollerar statusen för alla e-postmeddelanden. Observera att detta måste göras på msdb
databas.
SELECT * FROM msdb.dbo.sysmail_allitems;
Resultat (med vertikal utdata):
mailitem_id | 1 profile_id | 1 recipients | [email protected] copy_recipients | NULL blind_copy_recipients | NULL subject | SQL Server Agent Job: FAILED body | Your favorite SQL Server Agent job just failed body_format | TEXT importance | NORMAL sensitivity | NORMAL file_attachments | NULL attachment_encoding | MIME query | NULL execute_query_database | NULL attach_query_result_as_file | 0 query_result_header | 1 query_result_width | 256 query_result_separator | exclude_query_output | 0 append_query_error | 0 send_request_date | 2020-08-24 02:40:48.093 send_request_user | sa sent_account_id | NULL sent_status | failed sent_date | 2020-08-24 02:41:53.000 last_mod_date | 2020-08-24 02:41:53.290 last_mod_user | sa
Jag använde vertikal utmatning här så att du inte behöver rulla i sidled för att se alla kolumner.
Jag visar också bara den första raden (även om fyra rader returnerades), för att göra saker kortfattade.
Här är den igen, förutom den här gången visar jag alla fyra raderna. Den här gången byter jag till den normala horisontella utgången, och jag kommer att ange några få kolumner.
SELECT
mailitem_id,
sent_status,
send_request_date
FROM msdb.dbo.sysmail_allitems;
Resultat (med vertikal utdata):
+---------------+---------------+-------------------------+ | mailitem_id | sent_status | send_request_date | |---------------+---------------+-------------------------| | 1 | failed | 2020-08-24 02:40:48.093 | | 2 | failed | 2020-08-24 02:47:40.833 | | 3 | sent | 2020-08-24 03:58:57.887 | | 4 | sent | 2020-08-24 04:11:19.300 | +---------------+---------------+-------------------------+