sysmail_unsentitems (T-SQL)

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Berisi satu baris untuk setiap pesan Email Database dengan status tidak dikirim atau coba lagi. Pesan dengan status tidak terkirim atau coba lagi masih dalam antrean email dan dapat dikirim kapan saja. Pesan dapat memiliki status tidak dikirim karena alasan berikut:

  • Pesan baru, dan meskipun pesan telah ditempatkan pada antrean email, Database Mail sedang mengerjakan pesan lain dan belum mencapai pesan ini.

  • Program eksternal Email Database tidak berjalan dan tidak ada email yang dikirim.

Pesan dapat memiliki status coba lagi karena alasan berikut:

  • Email Database telah mencoba mengirim email, tetapi server email SMTP tidak dapat dihubungi. Email Database akan terus mencoba mengirim pesan menggunakan akun Email Database lain yang ditetapkan ke profil yang mengirim pesan. Jika tidak ada akun yang dapat mengirim email, Email Database akan menunggu lamanya waktu yang dikonfigurasi untuk parameter Penundaan Coba Lagi Akun lalu mencoba mengirim pesan lagi. Email Database menggunakan parameter Percobaan Kembali Akun untuk menentukan berapa kali mencoba mengirim pesan. Pesan mempertahankan status coba lagi selama Email Database mencoba mengirim pesan.

Gunakan tampilan ini saat Anda ingin melihat berapa banyak pesan yang menunggu untuk dikirim dan berapa lama pesan tersebut berada dalam antrean email. Biasanya jumlah pesan yang tidak dikirim akan rendah. Lakukan pengujian tolok ukur selama operasi normal untuk menentukan jumlah pesan yang wajar dalam antrean pesan untuk operasi Anda.

Untuk melihat semua pesan yang diproses oleh Email Database, gunakan sysmail_allitems (Transact-SQL). Untuk melihat hanya pesan dengan status gagal, gunakan sysmail_faileditems (Transact-SQL). Untuk melihat hanya pesan yang dikirim, gunakan sysmail_sentitems (Transact-SQL).

Nama kolom Jenis data Deskripsi
mailitem_id int Pengidentifikasi item email dalam antrean email.
profile_id int Pengidentifikasi profil yang digunakan untuk mengirimkan pesan.
Penerima varchar(max) Alamat email penerima pesan.
copy_recipients varchar(max) Alamat email dari mereka yang menerima salinan pesan.
blind_copy_recipients varchar(max) Alamat email dari mereka yang menerima salinan pesan tetapi yang namanya tidak muncul di header pesan.
subject nvarchar(510) Baris subjek pesan.
body varchar(max) Isi pesan.
body_format varchar(20) Format isi pesan. Nilai yang mungkin adalah TEXT dan HTML.
Penting varchar(6) Parameter penting pesan.
sensitivitas varchar(12) Parameter sensitivitas pesan.
file_attachments varchar(max) Daftar nama file yang dibatasi titik koma yang dilampirkan ke pesan email.
attachment_encoding varchar(20) Jenis lampiran email.
query varchar(max) Kueri yang dijalankan oleh program email.
execute_query_database nama sysname Konteks database tempat program email menjalankan kueri.
attach_query_result_as_file bit Saat nilainya adalah 0, hasil kueri disertakan dalam isi pesan email, setelah konten isi. Ketika nilainya adalah 1, hasilnya dikembalikan sebagai lampiran.
query_result_header bit Saat nilainya adalah 1, hasil kueri berisi header kolom. Saat nilainya adalah 0, hasil kueri tidak menyertakan header kolom.
query_result_width int Parameter query_result_width pesan.
query_result_separator karakter(1) Karakter yang digunakan untuk memisahkan kolom dalam output kueri.
exclude_query_output bit Parameter exclude_query_output pesan. Untuk informasi selengkapnya, lihat sp_send_dbmail (Transact-SQL).
append_query_error bit Parameter append_query_error pesan. 0 menunjukkan bahwa Email Database tidak boleh mengirim pesan email jika ada kesalahan dalam kueri.
send_request_date datetime Tanggal dan waktu pesan ditempatkan pada antrean email.
send_request_user nama sysname Pengguna yang mengirimkan pesan. Ini adalah konteks pengguna dari prosedur email database, bukan bidang Dari pesan.
sent_account_id int Pengidentifikasi akun Email Database yang digunakan untuk mengirim pesan. Selalu NULL untuk tampilan ini.
sent_status varchar(8) Akan tidak terkirim jika Email Database belum mencoba mengirim email. Akan mencoba kembali jika Email Database gagal mengirim pesan tetapi mencoba lagi.
sent_date datetime Tanggal dan waktu Email Database terakhir kali mencoba mengirim email. NULL jika Email Database belum mencoba mengirim pesan.
last_mod_date datetime Tanggal dan waktu modifikasi terakhir baris.
last_mod_user nama sysname Pengguna yang terakhir mengubah baris.

Keterangan

Saat memecahkan masalah Email Database, tampilan ini dapat membantu Anda mengidentifikasi sifat masalah, dengan menunjukkan jumlah pesan yang menunggu untuk dikirim, dan jumlah waktu pesan menunggu. Jika tidak ada pesan yang dikirim, program eksternal Email Database mungkin tidak berjalan, atau mungkin ada masalah jaringan yang mencegah Email Database menghubungi server SMTP. Jika banyak pesan yang tidak dikirim memiliki profile_id yang sama, mungkin ada masalah dengan server SMTP. Pertimbangkan untuk menambahkan akun tambahan ke profil. Jika pesan dikirim, tetapi pesan menghabiskan terlalu banyak waktu dalam antrean, SQL Server mungkin memerlukan lebih banyak sumber daya untuk memproses volume pesan yang Anda butuhkan.

Izin

Diberikan kepada peran server tetap sysadmin dan peran database DatabaseMailUserRole . Saat dijalankan oleh anggota peran server tetap sysadmin , tampilan ini menunjukkan semua pesan yang tidak ada atau coba lagi. Semua pengguna lain hanya melihat pesan yang tidak terkirim atau mencoba kembali yang mereka kirimkan.