Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Sprawdź niewysłaną pocztę w SQL Server (T-SQL)

Wysyłając e-maile z SQL Server, możesz sprawdzić niewysłaną pocztę za pomocą sysmail_unsentitems widok.

Przykład

Oto przykład sprawdzania niewysłanej poczty. Zauważ, że musi być uruchomiony na msdb baza danych.

SELECT * FROM msdb.dbo.sysmail_unsentitems;

Wynik (przy użyciu wyjścia pionowego):

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

Użyłem tutaj wyjścia pionowego, aby nie trzeba było przewijać na boki, aby zobaczyć wszystkie kolumny.

W tym przypadku jest jeden niewysłany e-mail. Zdarzyło mi się uruchomić to zapytanie natychmiast po wykonaniu msdb.dbo.sp_send_dbmail wysłać tę wiadomość.

Jak się okazało, wiadomość została wysłana natychmiast po skopiowaniu powyższych wyników, a teraz po ponownym uruchomieniu tego zapytania otrzymuję zero wyników (tj. Nie ma niewysłanych e-maili).

SELECT * FROM msdb.dbo.sysmail_unsentitems;

Wynik:

(0 rows affected)

Jednak tylko dlatego, że nie ma niewysłanych wiadomości e-mail, nie oznacza to, że nie ma żadnej, która zawiodła.

Możesz zapytać sysmail_faileditems aby zwrócić listę nieudanych e-maili.

Możesz także zapytać sysmail_sentitems aby otrzymać wszystkie wysłane e-maile.

Możesz także zapytać sysmail_allitems aby otrzymać wszystkie e-maile (wysłane, niewysłane, nieudane i ponawiane).


  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 Query wolno w aplikacji .NET, ale natychmiastowo w SQL Server Management Studio

  2. Podstawy zarządzania plikami danych w SQL Server

  3. Jak wbudować funkcjonalność RUNAS /NETONLY do programu (C#/.NET/WinForms)?

  4. java.sql.SQLException:nie znaleziono odpowiedniego sterownika dla jdbc:microsoft:sqlserver

  5. Jak wyświetlić klucz podstawowy tabeli SQL Server?