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).