Почта базы данных SQL с виртуальной машины Azure

Мы переносим нашу систему с выделенного хостинга на Azure. Частью этого процесса является система подачи данных, которая отправляет электронные письма клиентам и нашим системным администраторам, когда возникают проблемы с потоками данных.

Мы используем SQL Database Mail и простой SMTP-сервер IIS 6.0, установленный на коробке. Затем в наших хранимых процедурах SQL мы вызываем sp_send_dbmail для отправки наших сообщений.

Мы попытались воспроизвести это на нашей виртуальной машине Azure, и электронные письма, похоже, не проходят. SMTP-сервер был установлен и настроен так же, как и исходный выделенный ящик. Конфигурация почты базы данных такая же. Наши профили и учетные записи имеют одинаковые имена, поэтому любой перенесенный код, ссылающийся на них, не нужно будет изменять. Я даже не могу заставить «Отправить тестовое электронное письмо...» работать с узлом Database Mail в SSMS.

Есть ли что-то, чего мне не хватает в Azure, порта, который мне нужно открыть, или конечной точки, которую нужно настроить? Мы запускаем виртуальную машину центра обработки данных Windows 2016 с SQL Server 2016.


person Larry Grady    schedule 07.03.2017    source источник
comment
Насколько нам известно, если вы отправляете почту только с виртуальной машины Azure, вам не нужно открывать конечную точку. Возможно, вы могли бы использовать эту ссылку для настройки почты базы данных SQL.   -  person Shui shengbao    schedule 08.03.2017
comment
Обратите внимание, что эта возможность доступна только в планах Professional и Enterprise.   -  person Shui shengbao    schedule 08.03.2017
comment
Как насчет SQL Developer Edition? Мы используем профессионал, когда переходим к производству, но для тестирования я использую разработчик.   -  person Larry Grady    schedule 13.03.2017


Ответы (1)


Оказывается, проблема в том, что SQL Server 2016 больше не требует установки .NET 3.5, но некоторые базовые компоненты все еще используют его.

См. эту статью: https://joeydantoni.com/2016/07/27/sql-server-2016-database-mail-not-working/

Я не смог использовать точное решение в статье, но следующее решение сработало для меня.

Создайте файл:
C:\Program Files\Microsoft SQL Server\MSSQL13.REPLINKDEV\MSSQL\Binn\DatabaseMail.exe.config.

Поместите это в файл:

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

Перезапустите SQL-сервер

Вы можете сказать, работает ли он, если вы можете открыть DatabaseMail.exe в той же папке. Если нет, то, скорее всего, что-то не так с файлом конфигурации.

person Larry Grady    schedule 13.03.2017