Ich bin auf SQL Server 2016 und habe eine tolle Zeit ... Meine DB Mail sendet nicht und mir gehen die Orte aus, an denen ich nachsehen kann. Ich habe die SQL-Kontoberechtigungen für die ausführbare Datei DBmail doppelt überprüft - sie wurde gelesen und ausgeführt. Ich habe eine Regel für den ausgehenden Firewall-Port 587 eingegeben. Ich habe versucht, ein anderes E-Mail-Konto und -Profil mit denselben nicht gesendeten Problemen zu verwenden. Die einzigen Einträge in den Protokollen (DB-Mail-Protokollen) sind Start und Ende des Dienstes. Es gibt keine Fehler, die ich finden kann. Die E-Mails scheinen einfach in die Sendewarteschlange einzutreten und sie nie zu verlassen. Die Konten können E-Mails einzeln und von einer SQL Server 2014-Instanz auf einem anderen Computer senden und empfangen.
Ich habe eine Warteschlange mit Nachrichten mit dem Status "Nicht gesendet" und alle normalen Orte mit den erwarteten Ergebnissen abgesehen von einer langen Warteschlange mit nicht gesendeten Nachrichten überprüft:
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
Ich habe versucht, es aus- und wieder einzuschalten. Habe ich also ein DMV usw. verpasst, das Licht in diese Situation bringen könnte? Ist dies ein bekanntes Problem mit SQL Server 2016, das ich bei meinen Suchen nicht berücksichtigt habe? Gibt es noch andere mögliche Schritte, um diese Mail zu verschicken?
Antworten:
Aus einer Laune heraus habe ich bei der doppelten Überprüfung der Berechtigungen auf die eigentliche ausführbare DB-Mail-Datei geklickt. Das Ergebnis auf dem SQL Server 2014-Computer war ein leeres Befehlsfenster. Beim Klicken auf die ausführbare Datei von DB Mail in SQL Server 2016 wurde die folgende Meldung angezeigt:
Ich kann diese Anforderung nirgendwo in der SQL Server 2016-Dokumentation finden, sie ist jedoch eindeutig eine Anforderung. DB Mail funktioniert einwandfrei und es werden keine anderen Änderungen vorgenommen als die Installation von .NET 3.5.
quelle
Laut Microsoft Support gibt es einen Fehler im SQL Server 2016-Setup, der dazu führt, dass die Datenbank-E-Mail ohne .NET 3.5 nicht funktioniert
Es gibt eine Problemumgehung, wenn Sie eine DatabaseMail.exe.config- Datei in demselben Ordner erstellen, in dem sich die DatabaseMail.exe befindet (Binn-Ordner). Schreiben Sie Folgendes in die Datei und speichern Sie sie mit der UTF-8-Codierung
Quelle: UPDATE: SQL Server 2016 Database Mail funktioniert nicht auf einem Computer, auf dem .NET Framework 3.5 nicht installiert ist
quelle
Schauen Sie sich das stattdessen an. Auf diese Weise müssen Sie nur eine Datei kopieren, anstatt .net 3.5 zu installieren. Zuerst muss CU1 installiert werden. Überprüfen Sie hier für weitere Details.
quelle
Neben bereits genannten Ursachen, um es zu aktivieren E-Mail - Profil auf SQL Server - Agent - Ebene ist auch wichtig , wie angegeben hier :
quelle