Se utilizzi Posta database in SQL Server, puoi utilizzare sysmail_allitems
visualizza per controllare lo stato di tutte le email elaborate da Database Mail.
Esempio
Ecco un esempio di controllo dello stato di tutti i messaggi di posta. Nota che questo deve essere fatto su msdb
banca dati.
SELECT * FROM msdb.dbo.sysmail_allitems;
Risultato (usando l'output verticale):
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
Ho usato l'output verticale qui in modo che non sia necessario scorrere lateralmente per vedere tutte le colonne.
Sto anche visualizzando solo la prima riga (anche se sono state restituite quattro righe), per mantenere le cose concise.
Eccolo di nuovo, tranne che questa volta visualizzerò tutte e quattro le righe. Questa volta passerò all'output orizzontale normale e specificherò solo alcune colonne.
SELECT
mailitem_id,
sent_status,
send_request_date
FROM msdb.dbo.sysmail_allitems;
Risultato (usando l'output verticale):
+---------------+---------------+-------------------------+ | 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 | +---------------+---------------+-------------------------+