Lors de l'envoi d'e-mails depuis SQL Server, vous pouvez vérifier les e-mails non envoyés avec le sysmail_unsentitems
vue.
Exemple
Voici un exemple de vérification du courrier non envoyé. Notez qu'il doit être exécuté sur le msdb
base de données.
SELECT * FROM msdb.dbo.sysmail_unsentitems;
Résultat (en utilisant la sortie verticale) :
mailitem_id | 4 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 04:11:19.300 send_request_user | sa sent_account_id | NULL sent_status | unsent sent_date | NULL last_mod_date | 2020-08-24 04:11:19.300 last_mod_user | sa
J'ai utilisé la sortie verticale ici pour que vous n'ayez pas besoin de faire défiler latéralement pour voir toutes les colonnes.
Dans ce cas, il y a un e-mail non envoyé. Il m'est arrivé d'exécuter cette requête immédiatement après avoir exécuté msdb.dbo.sp_send_dbmail
pour envoyer ce courrier.
Il s'est avéré que l'e-mail a été envoyé immédiatement après avoir copié les résultats ci-dessus, et maintenant, lorsque j'exécute à nouveau cette requête, je n'obtiens aucun résultat (c'est-à-dire qu'il n'y a pas d'e-mails non envoyés).
SELECT * FROM msdb.dbo.sysmail_unsentitems;
Résultat :
(0 rows affected)
Cependant, ce n'est pas parce qu'il n'y a pas d'e-mails non envoyés qu'il n'y en a aucun qui a échoué.
Vous pouvez interroger sysmail_faileditems
pour renvoyer une liste des e-mails ayant échoué.
Vous pouvez également interroger sysmail_sentitems
pour obtenir tous les e-mails envoyés.
Vous pouvez également interroger sysmail_allitems
pour obtenir tous les e-mails (envoyés, non envoyés, échoués et réessayés).