Saat mengirim email dari SQL Server, Anda dapat memeriksa email yang tidak terkirim dengan sysmail_unsentitems
lihat.
Contoh
Berikut adalah contoh memeriksa email yang tidak terkirim. Perhatikan bahwa itu harus dijalankan pada msdb
basis data.
SELECT * FROM msdb.dbo.sysmail_unsentitems;
Hasil (menggunakan keluaran vertikal):
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
Saya menggunakan output vertikal di sini sehingga Anda tidak perlu menggulir ke samping untuk melihat semua kolom.
Dalam hal ini, ada satu email yang belum terkirim. Saya kebetulan menjalankan kueri ini segera setelah menjalankan msdb.dbo.sp_send_dbmail
untuk mengirim surat ini.
Ternyata, email dikirim segera setelah saya menyalin hasil di atas, dan sekarang ketika saya menjalankan kueri itu lagi, saya mendapatkan hasil nol (yaitu tidak ada email yang tidak terkirim).
SELECT * FROM msdb.dbo.sysmail_unsentitems;
Hasil:
(0 rows affected)
Namun, hanya karena tidak ada email yang tidak terkirim, bukan berarti tidak ada yang gagal.
Anda dapat menanyakan sysmail_faileditems
untuk mengembalikan daftar email yang gagal.
Anda juga dapat menanyakan sysmail_sentitems
untuk mendapatkan semua email terkirim.
Anda juga dapat menanyakan sysmail_allitems
untuk mendapatkan semua email (terkirim, tidak terkirim, gagal, dan mencoba lagi).