Wenn Sie versuchen, E-Mails mit SQL Server zu senden, diese aber nicht zugestellt werden, versuchen Sie, die sysmail_faileditems
zu überprüfen ansehen.
Beispiel
Hier ist ein Beispiel für die Überprüfung auf fehlgeschlagene E-Mails. Beachten Sie, dass es auf der msdb
ausgeführt werden muss Datenbank.
SELECT * FROM msdb.dbo.sysmail_faileditems;
Ergebnis (bei vertikaler Ausgabe):
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
Ich habe hier eine vertikale Ausgabe verwendet, damit Sie nicht seitwärts scrollen müssen, um alle Spalten zu sehen.
In diesem Fall zeige ich eine fehlgeschlagene E-Mail an. Ich hatte tatsächlich zwei fehlgeschlagene E-Mails, aber ich entschied, dass es prägnanter wäre, nur ein Ergebnis anzuzeigen.
In meinem Fall hatte ich den falschen Mailserver im Code verwendet, der die E-Mail sendet, und die E-Mails schlugen fehl. Sobald ich den Code aktualisiert habe, um den richtigen Mailserver zu verwenden, wurden alle nachfolgenden E-Mails erfolgreich gesendet. Dies ändert jedoch nicht diejenigen, die bereits fehlgeschlagen sind, und verbleiben daher in den sysmail_faileditems
ansehen.
Sie können sysmail_unsentitems
abfragen um eine Liste nicht gesendeter E-Mails zurückzugeben (solche, die noch gesendet werden müssen, nicht unbedingt fehlgeschlagen sind).
Sie können auch sysmail_sentitems
abfragen um alle gesendeten E-Mails zu erhalten.
Sie können auch sysmail_allitems
abfragen um alle E-Mails zu erhalten (gesendet, ungesendet, fehlgeschlagen und Wiederholung).