Hvis du bruger Database Mail i SQL Server, kan du bruge sysmail_allitems
visning for at kontrollere status for alle e-mails, som Database Mail har behandlet.
Eksempel
Her er et eksempel på kontrol af status for alle e-mails. Bemærk, at dette skal gøres på msdb
database.
SELECT * FROM msdb.dbo.sysmail_allitems;
Resultat (ved hjælp af lodret output):
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
Jeg brugte lodret output her, så du ikke behøver at rulle sidelæns for at se alle kolonner.
Jeg viser også kun den første række (selvom fire rækker blev returneret), for at holde tingene kortfattet.
Her er det igen, bortset fra at denne gang vil jeg vise alle fire rækker. Denne gang skifter jeg til det normale vandrette output, og jeg vil kun angive nogle få kolonner.
SELECT
mailitem_id,
sent_status,
send_request_date
FROM msdb.dbo.sysmail_allitems;
Resultat (ved hjælp af lodret output):
+---------------+---------------+-------------------------+ | 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 | +---------------+---------------+-------------------------+