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

Проверете неизпратена поща в SQL Server (T-SQL)

Когато изпращате имейли от SQL Server, можете да проверите за всяка неизпратена поща с sysmail_unsentitems изглед.

Пример

Ето пример за проверка за неизпратена поща. Имайте предвид, че трябва да се стартира на msdb база данни.

SELECT * FROM msdb.dbo.sysmail_unsentitems;

Резултат (с помощта на вертикален изход):

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

Използвах вертикален изход тук, така че да не е нужно да превъртате настрани, за да видите всички колони.

В този случай има един неизпратен имейл. Случайно стартирах тази заявка веднага след изпълнение на msdb.dbo.sp_send_dbmail да изпратите тази поща.

Както се оказа, имейлът беше изпратен веднага след като копирах горните резултати и сега, когато стартирам тази заявка отново, получавам нулеви резултати (т.е. няма неизпратени имейли).

SELECT * FROM msdb.dbo.sysmail_unsentitems;

Резултат:

(0 rows affected)

Само защото няма неизпратени имейли, това не означава, че няма неуспешни.

Можете да заявите sysmail_faileditems за да върнете списък с неуспешни имейли.

Можете също да направите заявка за sysmail_sentitems за да получите всички изпратени имейли.

Можете също да направите заявка за 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. Как да ИЗБЕРЕТЕ *, но без имената на колони трябва да са уникални във всеки изглед

  2. SQL Server:максималният брой редове в таблицата

  3. Има ли еквивалент на SELECT ... INTO OUTFILE в SQL Server Management Studio?

  4. Бройте въз основа на условие в SQL Server

  5. Как да зададете стойност по подразбиране за съществуваща колона