Saya menggunakan SQL Server 2016 dan bersenang-senang ... DB Mail saya tidak terkirim dan saya kehabisan tempat untuk mencari. Saya mengecek izin akun SQL untuk dapat dieksekusi DBmail - telah membaca dan mengeksekusi. Saya memasukkan aturan untuk port keluar firewall 587. Saya mencoba akun email lain dan profil dengan masalah yang belum terkirim sama. Satu-satunya entri dalam log (db mail log) adalah awal dan akhir layanan. Tidak ada kesalahan di mana pun yang dapat saya temukan. Tampaknya email cukup masuk antrian kirim dan tidak pernah meninggalkannya. Akun dapat mengirim dan menerima email sendiri dan dari contoh SQL Server 2014 di komputer lain.
Saya mendapat antrean item dengan status terkirim "tidak terkirim" dan memeriksa semua tempat normal dengan hasil yang diharapkan di semuanya, selain dari antrian panjang email yang belum dikirim:
SELECT * FROM msdb..sysmail_event_log order by log_id DESC
SELECT * FROM dbo.sysmail_mailitems
SELECT * FROM dbo.sysmail_sentitems
USE msdb
SELECT sent_status, *
FROM sysmail_allitems
SELECT is_broker_enabled FROM sys.databases WHERE name = 'msdb';
EXECUTE msdb.dbo.sysmail_help_status_sp
Saya telah mencoba mematikannya dan lagi ... jadi apakah saya melewatkan DMV dll yang dapat menjelaskan situasi ini? Apakah ini masalah yang diketahui dengan SQL Server 2016 yang belum saya cari? Adakah langkah lain yang memungkinkan untuk mengirim email ini?
Jawaban:
Seketika, ketika memeriksa izin dua kali, saya mengklik dua kali pada DB mail yang sebenarnya dapat dieksekusi. Hasil pada mesin SQL Server 2014 adalah jendela perintah kosong. Pada SQL Server 2016 mengklik DB Mail yang dapat dieksekusi menyajikan pesan ini:
Saya tidak dapat menemukan persyaratan ini di mana pun dalam dokumentasi SQL Server 2016, namun ini jelas merupakan persyaratan. DB Mail berfungsi dengan sempurna tanpa ada perubahan selain menginstal .NET 3.5.
sumber
Menurut Dukungan Microsoft, ada bug di Penataan SQL server 2016 yang menyebabkan surat basis data tidak berfungsi tanpa .net 3.5
Ada pekerjaan di sekitar dengan membuat file DatabaseMail.exe.config di folder yang sama di mana ada DatabaseMail.exe (folder Binn) tulis yang berikut ke file dan simpan dengan pengkodean utf-8
Sumber: FIX: Database Mail SQL Server 2016 tidak berfungsi di komputer yang tidak memiliki .NET Framework 3.5 diinstal
sumber
Alook di ini sebagai gantinya. Dengan cara ini Anda hanya perlu menyalin file daripada menginstal .net 3.5. Perlu menginstal CU1 terlebih dahulu. Periksa di sini untuk detail lebih lanjut.
sumber
Selain penyebab yang telah disebutkan, penting juga untuk mengaktifkan profil email di tingkat SQL Server Agent seperti yang ditunjukkan di sini :
sumber