sql >> Databáze >  >> RDS >> Sqlserver

Kontrola chybného e-mailu na serveru SQL Server (T-SQL)

Pokud se pokoušíte odeslat poštu pomocí SQL Serveru, ale nedoručuje se, zkuste zkontrolovat sysmail_faileditems zobrazit.

Příklad

Zde je příklad kontroly neúspěšné pošty. Všimněte si, že musí být spuštěn na msdb databáze.

SELECT * FROM msdb.dbo.sysmail_faileditems;

Výsledek (při použití vertikálního výstupu):

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

Použil jsem zde vertikální výstup, abyste se nemuseli posouvat do stran, abyste viděli všechny sloupce.

V tomto případě zobrazujem jeden neúspěšný e-mail. Ve skutečnosti jsem měl dva neúspěšné e-maily, ale rozhodl jsem se, že bude výstižnější ukázat pouze jeden výsledek.

V mém případě jsem v kódu, který odesílá e-mail, použil nesprávný poštovní server a e-maily se nezdařily. Jakmile jsem aktualizoval kód, aby používal správný poštovní server, všechny následující e-maily byly úspěšně odeslány. To však nemění ty, které již selhaly, a proto zůstávají v sysmail_faileditems zobrazit.

Můžete se dotázat sysmail_unsentitems vrátit seznam neodeslaných e-mailů (těch, které se teprve mají odeslat, nemusí nutně selhat).

Můžete se také dotazovat sysmail_sentitems získat všechny odeslané e-maily.

Můžete se také dotazovat sysmail_allitems získat všechny e-maily (odeslané, neodeslané, neúspěšné a opakující se).


  1. Jak mohu uvést, že má stejná data ID jako smyčka while v PHP?

  2. MySQL:Nelze vytvořit tabulku (errno:150)

  3. Použití MariaDB Flashback na serveru MySQL

  4. Jak SPACE() funguje v MariaDB