Hvis du bruger Database Mail i SQL Server, kan du bruge sysmail_sentitems
view for at returnere en liste over alle e-mails, som Database Mail har sendt.
Eksempel
Her er et eksempel på returnering af alle sendte e-mails. Bemærk, at dette skal gøres på msdb
database.
SELECT * FROM msdb.dbo.sysmail_sentitems;
Resultat (ved hjælp af lodret output):
mailitem_id | 3 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 03:58:57.887 send_request_user | sa sent_account_id | 1 sent_status | sent sent_date | 2020-08-24 03:59:01.000 last_mod_date | 2020-08-24 03:59:01.543 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 to rækker blev returneret), for at holde tingene kortfattet.
Her er det igen, bortset fra at denne gang skifter jeg til vandret output og viser begge rækker. Jeg vil også 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 | sent_date | |---------------+---------------+-------------------------+-------------------------| | 3 | sent | 2020-08-24 03:58:57.887 | 2020-08-24 03:59:01.000 | | 4 | sent | 2020-08-24 04:11:19.300 | 2020-08-24 04:11:22.000 | +---------------+---------------+-------------------------+-------------------------+
Du kan forespørge sysmail_unsentitems
for at returnere en liste over ikke-sendte e-mails (dem, der endnu ikke er sendt, ikke nødvendigvis mislykkedes).
Du kan også forespørge sysmail_faileditems
for at få alle mislykkede e-mails.
Du kan også forespørge sysmail_allitems
for at få alle e-mails (sendte, ikke sendt, mislykkedes og forsøger igen).