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

Kontrola neodeslané pošty na serveru SQL Server (T-SQL)

Při odesílání e-mailů ze serveru SQL Server můžete pomocí sysmail_unsentitems zkontrolovat všechny neodeslané pošty zobrazit.

Příklad

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

SELECT * FROM msdb.dbo.sysmail_unsentitems;

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

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

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

V tomto případě je jeden neodeslaný e-mail. Náhodou jsem spustil tento dotaz ihned po spuštění msdb.dbo.sp_send_dbmail odeslat tento mail.

Jak se ukázalo, e-mail byl odeslán okamžitě poté, co jsem zkopíroval výše uvedené výsledky, a nyní, když znovu spustím tento dotaz, nedostanu žádné výsledky (tj. neexistují žádné neodeslané e-maily).

SELECT * FROM msdb.dbo.sysmail_unsentitems;

Výsledek:

(0 rows affected)

To, že neexistují žádné neodeslané e-maily, však neznamená, že neexistují žádné, které by selhaly.

Můžete se dotázat sysmail_faileditems vrátit seznam neúspěšných e-mailů.

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. Duplikovat řádky v tabulce primárního klíče.

  2. "VAROVÁNÍ:Byla zjištěna neshoda mezi sl_table a pg_class." v Slony-I

  3. MÍSTO spouštěčů – část 1

  4. Porozumění Javě Oracle na Macu