Wenn Sie Datenbank-E-Mail in SQL Server verwenden, können Sie sysmail_sentitems
verwenden view, um eine Liste aller E-Mails anzuzeigen, die Database Mail gesendet hat.
Beispiel
Hier ist ein Beispiel für die Rückgabe aller gesendeten E-Mails. Beachten Sie, dass dies auf der msdb
erfolgen muss Datenbank.
SELECT * FROM msdb.dbo.sysmail_sentitems;
Ergebnis (bei vertikaler Ausgabe):
mailitem_id | 3profil_id | 1 Empfänger | [email protected]_recipients | NULLblind_copy_recipients | NULLBetreff | SQL Server-Agent-Auftrag:FAILEDbody | Ihr bevorzugter SQL Server-Agent-Job ist gerade fehlgeschlagenbody_format | TEXTwichtigkeit | NORMALEEmpfindlichkeit | NORMALfile_attachments | NULLattachment_encoding | MIME-Abfrage | NULLexecute_query_database | NULLattach_query_result_as_file | 0query_result_header | 1query_result_width | 256query_result_separator | Ausschluss_Abfrageausgabe | 0append_query_error | 0send_request_date | 2020-08-24 03:58:57.887send_request_user | sent_account_id | 1gesendet_status | sendsent_date | 2020-08-24 03:59:01.000last_mod_date | 2020-08-24 03:59:01.543last_mod_user | sa
Ich habe hier eine vertikale Ausgabe verwendet, damit Sie nicht seitwärts scrollen müssen, um alle Spalten zu sehen.
Ich zeige auch nur die erste Zeile an (obwohl zwei Zeilen zurückgegeben wurden), um die Dinge übersichtlich zu halten.
Hier ist es wieder, außer dass ich dieses Mal zur horizontalen Ausgabe wechsle und beide Zeilen anzeigen werde. Außerdem gebe ich nur wenige Spalten an.
SELECT
mailitem_id,
sent_status,
send_request_date
FROM msdb.dbo.sysmail_allitems;
Ergebnis (bei vertikaler Ausgabe):
Sie können sysmail_unsentitems
abfragen um eine Liste nicht gesendeter E-Mails zurückzugeben (die noch gesendet werden müssen, nicht unbedingt fehlgeschlagen sind).
Sie können auch sysmail_faileditems
abfragen um alle fehlgeschlagenen E-Mails zu erhalten.
Sie können auch sysmail_allitems
abfragen um alle E-Mails zu erhalten (gesendet, ungesendet, fehlgeschlagen und Wiederholung).