Ако използвате Database Mail в SQL Server, можете да използвате sysmail_sentitems
преглед, за да върнете списък с всички имейли, изпратени от Database Mail.
Пример
Ето пример за връщане на всички изпратени имейли. Имайте предвид, че това трябва да се направи в msdb
база данни.
SELECT * FROM msdb.dbo.sysmail_sentitems;
Резултат (с помощта на вертикален изход):
mailitem_id | 3 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 03:58:57.887 send_request_user | sa sent_account_id | 1 sent_status | sent sent_date | 2020-08-24 03:59:01.000 last_mod_date | 2020-08-24 03:59:01.543 last_mod_user | sa
Използвах вертикален изход тук, така че да не е нужно да превъртате настрани, за да видите всички колони.
Също така показвам само първия ред (въпреки че бяха върнати два реда), за да бъдат нещата кратки.
Ето го отново, освен този път ще превключя на хоризонтален изход и ще покажа двата реда. Освен това ще посоча само няколко колони.
SELECT
mailitem_id,
sent_status,
send_request_date
FROM msdb.dbo.sysmail_allitems;
Резултат (с помощта на вертикален изход):
+---------------+---------------+-------------------------+-------------------------+ | mailitem_id | sent_status | send_request_date | sent_date | |---------------+---------------+-------------------------+-------------------------| | 3 | sent | 2020-08-24 03:58:57.887 | 2020-08-24 03:59:01.000 | | 4 | sent | 2020-08-24 04:11:19.300 | 2020-08-24 04:11:22.000 | +---------------+---------------+-------------------------+-------------------------+
Можете да заявите sysmail_unsentitems
за да върнете списък с неизпратени имейли (тези, които тепърва ще бъдат изпратени, не е непременно неуспешни).
Можете също да направите заявка за sysmail_faileditems
за да получите всички неуспешни имейли.
Можете също да направите заявка за sysmail_allitems
за да получите всички имейли (изпратени, неизпратени, неуспешни и повторни опити).