sql >> Database >  >> RDS >> Sqlserver

Controleer op mislukte e-mail in SQL Server (T-SQL)

Als u e-mail probeert te verzenden met SQL Server, maar deze wordt niet afgeleverd, controleer dan de sysmail_faileditems bekijken.

Voorbeeld

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

SELECT * FROM msdb.dbo.sysmail_faileditems;

Resultaat (met verticale uitvoer):

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

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

In dit geval laat ik één mislukte e-mail zien. Ik had eigenlijk twee mislukte e-mails, maar ik besloot dat het beknopter was om slechts één resultaat te tonen.

In mijn geval had ik de verkeerde mailserver gebruikt in de code die de e-mail verzendt, en de e-mails mislukten. Zodra ik de code had bijgewerkt om de juiste e-mailserver te gebruiken, werden alle volgende e-mails met succes verzonden. Dit verandert echter niets aan degenen die al waren mislukt, en daarom blijven ze in de sysmail_faileditems bekijken.

U kunt sysmail_unsentitems . opvragen om een ​​lijst met niet-verzonden e-mails terug te sturen (die nog moeten worden verzonden, zijn niet noodzakelijk mislukt).

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. Populaire Docker-afbeeldingen voor MySQL en MariaDB Server

  2. Haal het weeknummer van een datum in PostgreSQL

  3. Bij verwijderen cascade voor zelfverwijzende tabel

  4. Hoe databasenaam opvragen in Oracle SQL Developer?