sql >> Database >  >> RDS >> Sqlserver

Controleer niet-verzonden e-mail in SQL Server (T-SQL)

Wanneer u e-mails vanuit SQL Server verzendt, kunt u controleren op niet-verzonden e-mail met de sysmail_unsentitems bekijken.

Voorbeeld

Hier is een voorbeeld van het controleren op niet-verzonden e-mail. Merk op dat het moet worden uitgevoerd op de msdb database.

SELECT * FROM msdb.dbo.sysmail_unsentitems;

Resultaat (met verticale uitvoer):

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

Ik heb hier verticale uitvoer gebruikt, zodat je niet zijwaarts hoeft te scrollen om alle kolommen te zien.

In dit geval is er één niet-verzonden e-mail. Ik heb deze query toevallig uitgevoerd onmiddellijk na het uitvoeren van msdb.dbo.sp_send_dbmail om deze mail te versturen.

Het bleek dat de e-mail onmiddellijk werd verzonden nadat ik de bovenstaande resultaten had gekopieerd, en als ik die query nu opnieuw uitvoer, krijg ik nul resultaten (d.w.z. er zijn geen niet-verzonden e-mails).

SELECT * FROM msdb.dbo.sysmail_unsentitems;

Resultaat:

(0 rows affected)

Echter, alleen omdat er geen niet-verzonden e-mails zijn, betekent dit niet dat er geen zijn die zijn mislukt.

U kunt sysmail_faileditems . opvragen om een ​​lijst met mislukte e-mails te retourneren.

U kunt ook sysmail_sentitems . opvragen om alle verzonden e-mails te ontvangen.

U kunt ook sysmail_allitems . opvragen om alle e-mails te ontvangen (verzonden, niet-verzonden, mislukt en opnieuw geprobeerd).


  1. Hoe Excel- of CSV-gegevens in de tabel in te voegen met behulp van de grafische gebruikersinterface in SQL Server - SQL Server / TSQL-zelfstudie, deel 102

  2. KIES * UIT meerdere tabellen. MySQL

  3. Python-module cx_Oracle-module kan niet worden gevonden

  4. Hoe SET ROWCOUNT werkt in SQL Server