Bagikan melalui


Email database: Email diantrekan, tidak terkirim

Berlaku untuk: SQL ServerAzure SQL Managed Instance

Artikel ini menjelaskan cara memecahkan masalah di mana pesan email dari Email Database berhasil diantrekan, tetapi pesan tidak dikirim.

Diagnosis masalah

Program eksternal Email Database mencatat aktivitas email dalam msdb database.

  1. Pertama, untuk mengonfirmasi bahwa Email Database diaktifkan, gunakan Database Mail XPs (opsi konfigurasi server) dari prosedur tersimpan sp_configure sistem, seperti dalam contoh berikut:

    EXEC sp_configure 'show advanced', 1;  
    RECONFIGURE; 
    EXEC sp_configure; 
    GO
    
  2. Kemudian, jalankan pernyataan berikut dalam msdb database 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).

  3. 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, periksa indikasi Pesan yang Diantrekan, Tidak Ada Entri di sysmail_event_log.

  4. Jika terjadi kesalahan dalam tampilan sysmail_event_log, selesaikan masalah kesalahan tersebut. Periksa tampilan sysmail_allitems untuk status pesan.

Status pesan tidak dikirim

Status belum terkirim menunjukkan bahwa Program Eksternal Mail 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, batas waktu 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. Tinjau beban email yang dikirim dari SQL Server untuk memverifikasi bahwa email yang dikirim valid dan dimaksudkan.

Periksa tanggal modifikasi terbaru untuk pesan yang berhasil dikirimkan. Jika pengiriman sukses terakhir 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. Periksa log peristiwa Aplikasi Windows untuk kesalahan yang terkait dengan Email Database.

Catatan

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

Coba lagi status pesan

Status coba lagi menunjukkan bahwa Database Mail 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 Aplikasi Windows.

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, msdb.dbo.sysmail_event_log tampilan sistem berisi informasi terperinci dari program eksternal. Untuk kueri sampel yang menggabungkan sysmail_faileditems dan sysmail_event_log untuk mengambil pesan kesalahan secara terperinci, lihat Periksa Status Pesan Email yang Dikirim Dengan Database Mail. 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.

Langkah selanjutnya