Als u Database Mail in SQL Server gebruikt, kunt u de sysmail_allitems
bekijken om de status te controleren van alle e-mails die Database Mail heeft verwerkt.
Voorbeeld
Hier is een voorbeeld van het controleren van de status van alle e-mailberichten. Merk op dat dit moet worden gedaan op de msdb
database.
SELECT * FROM msdb.dbo.sysmail_allitems;
Resultaat (met verticale uitvoer):
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
Ik heb hier verticale uitvoer gebruikt, zodat je niet zijwaarts hoeft te scrollen om alle kolommen te zien.
Ik geef ook alleen de eerste rij weer (ook al zijn er vier rijen geretourneerd), om het beknopt te houden.
Hier is het weer, maar deze keer zal ik alle vier de rijen weergeven. Deze keer schakel ik over naar de normale horizontale uitvoer en specificeer ik slechts een paar kolommen.
SELECT
mailitem_id,
sent_status,
send_request_date
FROM msdb.dbo.sysmail_allitems;
Resultaat (met verticale uitvoer):
+---------------+---------------+-------------------------+ | 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 | +---------------+---------------+-------------------------+