Я нахожусь на SQL Server 2016 и получаю удовольствие ... моя почта БД не отправляется, и у меня не хватает мест для поиска. Я дважды проверил права доступа учетной записи SQL к исполняемому файлу DBmail - он прочитал и выполнил. Я ввел правило для исходящего порта брандмауэра 587. Я попробовал другую учетную запись и профиль почты с теми же неотправленными проблемами. Единственные записи в журналах (db mail logs) являются началом и окончанием службы. Там нигде нет ошибок, которые я могу найти. Сообщения электронной почты просто входят в очередь отправки и никогда не покидают ее. Учетные записи могут отправлять и получать электронную почту самостоятельно и с экземпляра SQL Server 2014 на другом компьютере.
У меня есть очередь элементов с отправленным статусом «неотправлено» и я проверил все обычные места с ожидаемыми результатами во всех из них, кроме длинной очереди неотправленных писем:
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
Я пытался выключить и снова включить ... так я пропустил DMV и т. Д., Которые могли бы пролить свет на эту ситуацию? Это известная проблема с SQL Server 2016, которой у меня нет в поиске? Любые другие возможные шаги, чтобы получить это письмо?
Ответы:
По какой-то причине при двойной проверке разрешений я дважды щелкнул по самому исполняемому файлу БД. Результатом на компьютере с SQL Server 2014 было пустое командное окно. На SQL Server 2016 щелчок по исполняемому файлу БД Почты представил это сообщение:
Я не могу найти это требование в документации по SQL Server 2016, но оно явно является требованием. БД Почта работает отлично, без каких-либо других изменений, кроме установки .NET 3.5.
источник
Согласно службе поддержки Microsoft, в программе установки SQL Server 2016 есть ошибка, из-за которой почта базы данных не работает без .net 3.5
Есть обходной путь, создав файл DatabaseMail.exe.config в той же папке, где существует DatabaseMail.exe (папка Binn), запишите в файл следующее и сохраните в кодировке utf-8.
Источник: ИСПРАВЛЕНИЕ: SQL Server 2016 Database Mail не работает на компьютере, на котором не установлен .NET Framework 3.5
источник
Взгляните на это вместо этого. Таким образом, вам нужно только скопировать файл, а не устанавливать .net 3.5. Сначала нужно установить CU1. Проверьте здесь для более подробной информации.
источник
Помимо уже упомянутых причин, также важно активировать профиль электронной почты на уровне агента SQL Server, как указано здесь :
источник