Ако се опитвате да изпращате поща със SQL Server, но тя не се доставя, опитайте да проверите sysmail_faileditems
изглед.
Пример
Ето пример за проверка за неуспешна поща. Имайте предвид, че трябва да се стартира на msdb
база данни.
SELECT * FROM msdb.dbo.sysmail_faileditems;
Резултат (с помощта на вертикален изход):
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
Използвах вертикален изход тук, така че да не е нужно да превъртате настрани, за да видите всички колони.
В този случай показвам един неуспешен имейл. Всъщност имах два неуспешни имейла, но реших, че е по-кратко да покажа само един резултат.
В моя случай използвах грешен пощенски сървър в кода, който изпраща имейла, и имейлите се провалиха. Веднага след като актуализирах кода, за да използвам правилния пощенски сървър, всички следващи имейли бяха изпратени успешно. Това обаче не променя тези, които вече са се провалили, и следователно те остават в sysmail_faileditems
изглед.
Можете да заявите sysmail_unsentitems
за да върнете списък с неизпратени имейли (тези, които тепърва ще бъдат изпратени, не е непременно неуспешни).
Можете също да направите заявка за sysmail_sentitems
за да получите всички изпратени имейли.
Можете също да направите заявка за sysmail_allitems
за да получите всички имейли (изпратени, неизпратени, неуспешни и повторни опити).