Jika Anda mencoba mengirim email dengan SQL Server tetapi tidak terkirim, coba periksa sysmail_faileditems
lihat.
Contoh
Berikut ini contoh pemeriksaan email yang gagal. Perhatikan bahwa itu harus dijalankan pada msdb
basis data.
SELECT * FROM msdb.dbo.sysmail_faileditems;
Hasil (menggunakan keluaran vertikal):
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
Saya menggunakan output vertikal di sini sehingga Anda tidak perlu menggulir ke samping untuk melihat semua kolom.
Dalam hal ini, saya menunjukkan satu email yang gagal. Sebenarnya saya memiliki dua email yang gagal, tetapi saya memutuskan bahwa lebih ringkas untuk menampilkan hanya satu hasil.
Dalam kasus saya, saya telah menggunakan server email yang salah dalam kode yang mengirim email, dan email gagal. Segera setelah saya memperbarui kode untuk menggunakan server email yang benar, semua email berikutnya berhasil dikirim. Namun, ini tidak mengubah yang telah gagal, dan oleh karena itu, mereka tetap berada di sysmail_faileditems
lihat.
Anda dapat menanyakan sysmail_unsentitems
untuk mengembalikan daftar email yang belum terkirim (yang belum dikirim, belum tentu 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).