Bagikan melalui


Email database: Email diantrekan, tidak terkirim

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Topik ini menjelaskan cara memecahkan masalah di mana pesan email berhasil diantrekan, tetapi pesan tidak dikirim.

Diagnosis masalah

Program eksternal Email Database mencatat aktivitas email dalam database msdb .

Pertama, untuk mengonfirmasi bahwa Email Database diaktifkan, gunakan Opsi XPs Email Database dari prosedur tersimpan sistem sp_configure , seperti dalam contoh berikut:

EXEC sp_configure 'show advanced', 1;  
RECONFIGURE; 
EXEC sp_configure; 
GO

Kemudian, jalankan pernyataan berikut dalam database msdb untuk memeriksa status antrean email:

EXEC msdb.dbo.sysmail_help_queue_sp @queue_type = 'Mail';

Untuk penjelasan terperinci tentang kolom, lihat sysmail_help_queue_sp (Transact-SQL).

Periksa tampilan sysmail_event_log untuk aktivitas. Tampilan harus berisi entri yang menyatakan bahwa program eksternal Email Database telah dimulai. Jika tidak ada entri dalam tampilan sysmail_event_log , lihat Pesan gejala Diantrekan, Tidak Ada Entri dalam sysmail_event_log. Jika ada kesalahan dalam tampilan sysmail_event_log , pecahkan masalah kesalahan tertentu.

Jika ada entri dalam tampilan sysmail_event_log , periksa tampilan sysmail_allitems untuk status pesan.

Status pesan tidak dikirim

Status tidak terungkap menunjukkan bahwa program eksternal Email Database belum memproses pesan email. Program eksternal Email Database mungkin tertinggal dalam memproses pesan; tingkat di mana program eksternal memproses pesan tergantung pada kondisi jaringan, waktu habis coba lagi, volume pesan, dan kapasitas server SMTP. Jika masalah berlanjut, pertimbangkan untuk menggunakan lebih dari satu profil untuk mendistribusikan pesan di antara lebih dari satu server SMTP.

Periksa tanggal modifikasi terbaru untuk pesan yang berhasil dikirimkan. Jika pengiriman terakhir berhasil terjadi beberapa waktu lalu, periksa tampilan sysmail_event_log untuk memverifikasi bahwa program eksternal berhasil dimulai oleh Service Broker. Jika upaya terakhir tidak memulai program eksternal, verifikasi bahwa Program Eksternal Email Database terletak di direktori yang benar, dan bahwa akun layanan untuk SQL Server memiliki izin untuk menjalankan yang dapat dieksekusi.

Catatan

Untuk menghapus pesan lama yang tidak dikirim, tunggu hingga pesan yang tidak dapat dikirim adalah pesan terlama dalam antrean, lalu gunakan sysmail_delete_mailitems_sp untuk menghapusnya.

Coba lagi status pesan

Status coba lagi menunjukkan bahwa Database Mail telah mencoba mengirimkan pesan ke server SMTP tetapi tidak bisa. Biasanya ini disebabkan oleh gangguan jaringan, kegagalan server SMTP, atau akun Email Database yang salah dikonfigurasi. Pesan pada akhirnya akan berhasil atau gagal dan memposting pesan ke log peristiwa.

Status pesan dikirim

Status terkirim menunjukkan bahwa program eksternal Email Database berhasil mengirimkan pesan email ke server SMTP. Jika pesan tidak sampai di tujuan, server SMTP menerima pesan dari Email Database, tetapi tidak mengirimkan pesan ke penerima akhir. Periksa log server SMTP, atau hubungi administrator server SMTP. Anda juga dapat menguji server email SMTP dengan menggunakan klien lain seperti Outlook Express.

Status pesan gagal

Status gagal menunjukkan bahwa program eksternal Email Database tidak dapat mengirimkan pesan ke server SMTP. Dalam hal ini, tampilan sysmail_event_log berisi informasi terperinci dari program eksternal. Untuk kueri sampel yang bergabung dengan sysmail_faileditems dan sysmail_event_log untuk mengambil pesan kesalahan terperinci, lihat Memeriksa Status Pesan Email yang Dikirim Dengan Email Database. Penyebab kegagalan yang paling umum adalah alamat tujuan yang salah, atau masalah jaringan yang mencegah program eksternal mencapai satu atau beberapa akun failover. Masalah di server SMTP juga dapat menyebabkan server tersebut menolak email. Dengan menggunakan Wizard Konfigurasi Email Database, ubah Tingkat Pengelogan ke Verbose dan kirim email pengujian untuk menyelidiki titik kegagalan.

Baca juga