Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Zurückgeben einer Liste von E-Mails, die von SQL Server Database Mail (T-SQL) gesendet wurden

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):

+----------+---------------+------------- -----------+-------------------------+| mailitem_id | send_status | send_request_date | send_date ||---------------+---------------+--------------- ----------+-------------------------|| 3 | gesendet | 2020-08-24 03:58:57.887 | 2020-08-24 03:59:01.000 || 4 | gesendet | 2020-08-24 04:11:19.300 | 2020-08-24 04:11:22.000 |+---------------+---------------+------ --------------+-------------------------+

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).