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

Sprawdź nieudane wiadomości e-mail w programie SQL Server (T-SQL)

Jeśli próbujesz wysłać pocztę za pomocą SQL Server, ale nie jest ona dostarczana, spróbuj sprawdzić sysmail_faileditems widok.

Przykład

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

SELECT * FROM msdb.dbo.sysmail_faileditems;

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

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

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

W tym przypadku pokazuję jeden nieudany e-mail. Właściwie miałem dwa nieudane e-maile, ale zdecydowałem, że bardziej zwięzłe będzie pokazanie tylko jednego wyniku.

W moim przypadku użyłem złego serwera pocztowego w kodzie wysyłającym wiadomość e-mail i e-maile się nie powiodły. Jak tylko zaktualizowałem kod, aby używał prawidłowego serwera pocztowego, wszystkie kolejne e-maile zostały pomyślnie wysłane. Nie zmienia to jednak tych, które już się nie powiodły i dlatego pozostają w sysmail_faileditems widok.

Możesz zapytać sysmail_unsentitems aby zwrócić listę niewysłanych e-maili (tych, które nie zostały jeszcze wysłane, niekoniecznie nieudane).

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 Server FOR JSON AUTO Przykłady (T-SQL)

  2. SQL Server Wyzwalacz do pracy z wstawianiem wielu wierszy

  3. Nie można znaleźć procedury składowanej „dbo.aspnet_CheckSchemaVersion”

  4. Co oznacza znacznik czasu w T-Sql w C#?

  5. Jak wysyłać wiadomości e-mail z serwera SQL (T-SQL)