SQL Server 2016 DB Mail Tidak Mengirim

17

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?

Dave
sumber
Apakah profil dari email yang Anda kirim bersifat pribadi?
Kin Shah
Ada kesalahan? Bagaimana dengan log? Dan server surat? Apakah server email menerima koneksi dari sql? Pertanyaannya hilang banyak info yang relevan ...
Paolo
@ tidak, ini email publik. Kedua email tersebut adalah kantor 365 dan akun mengirim dan menerima denda dari SQL 2014. Menambahkan beberapa detail lagi ke akhir paragraf 1 yang menjelaskan situasi.
Dave
Saya maksudkan profil email basis data Anda.
Kin Shah
Apakah Anda dapat melakukan ping / telnet server SMTP dari kotak SQL Server 2016 Anda? Jika ya, dapatkah Anda mencoba menjalankan skrip VB dari tautan mssqltips.com/sqlservertip/1625/… untuk menyingkirkan masalah SMTP. Jika Anda menerima surat uji maka Anda dapat yakin bahwa itu adalah masalah dengan SQL server.
SQLPRODDBA

Jawaban:

17

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:

masukkan deskripsi gambar di sini

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.

Dave
sumber
Saya memiliki masalah yang sama. Diatasi dengan menerapkan .net 3.5.
Sir Swears-a-lot
ini memperbaiki masalah saya juga! itu membuat saya gila tetapi menginstal NET3.5 memperbaiki masalah saya!
NULL. Bung
Ini memperbaiki masalah yang sama bagi saya pada 2016 SP1 CU8
James Anderson
di mana DB mail executable berada?
JzInqXc9Dg
@Jangan OH YESUS INI LUAR BIASA. Hanya ingin tahu ... apakah Anda menggunakan LogMeIn di server ini? Kami telah menjumpai situasi aneh di mana LogMeIn mencopot pemasangan atau menghapus barang, dan mereka menolak untuk mengakuinya. Email basis data saya pada satu titik berfungsi dengan baik pada satu kotak dan pasti berhenti bekerja sekitar waktu kami pindah ke LogMeIn
John Zabroski
10

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

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true"> 
<supportedRuntime version="v4.0"/>     
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>

Sumber: FIX: Database Mail SQL Server 2016 tidak berfungsi di komputer yang tidak memiliki .NET Framework 3.5 diinstal

Jalal Shahoud
sumber
4

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.

Yhagger
sumber
2
Sudah ada [Pembaruan Kumulatif 2 untuk SQL Server 2016 | support.microsoft.com/en-us/kb/3182270] dengan [FIX: SQL Server 2016 Database Mail tidak berfungsi pada komputer yang tidak memiliki .NET Framework 3.5 diinstal | support.microsoft.com/en-us/kb/3186435] .
Vladislav
1
Hanya menghabiskan 30 menit untuk melihat masalah ini sebelum berakhir di sini. Terima kasih telah menyelamatkan saya lebih banyak waktu.
Paul
1

Selain penyebab yang telah disebutkan, penting juga untuk mengaktifkan profil email di tingkat SQL Server Agent seperti yang ditunjukkan di sini :

  • Klik kanan Agen SQL Server> pilih Properti
  • Pilih Alert System di panel kiri

  • Tanda centang> Aktifkan profil email

  • Verifikasi sistem Mail: Database Mail
  • Verifikasi Profil Surat: SQLAlerts
  • Tanda centang> Sertakan isi email dalam pesan notifikasi
  • Klik OK.
  • Mulai ulang Agen.
Alexei
sumber