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