Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Връщане на списък с имейли, изпратени от SQL Server Database Mail (T-SQL)

Ако използвате 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 за да получите всички имейли (изпратени, неизпратени, неуспешни и повторни опити).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Неизползван индекс на SQL Server

  2. Причини за надстройка до SQL Server 2017

  3. Производителност INNER JOIN срещу LEFT JOIN в SQL Server

  4. Как да използвате функциите на SQL Server AlwaysOn

  5. Съхранение на XML данни в SQL Server