0

我们正在将我们的系统从专用托管迁移到 Azure。此过程的一部分是数据馈送系统,当数据馈送出现问题时,该系统会向客户和我们的系统管理员发送电子邮件。

我们使用 SQL 数据库邮件和一个简单的 IIS 6.0 SMTP 服务器设置在盒子上。然后在我们的 SQL 存储过程中,我们调用 sp_send_dbmail 来发送我们的消息。

我们试图在我们的 Azure 虚拟机上复制它,但电子邮件似乎没有通过。SMTP 服务器的安装和设置与原来的专用盒子相同。数据库邮件配置也是一样的。我们的配置文件和帐户具有相同的名称,因此任何引用它们的迁移代码都不必更改。我什至无法让“发送测试电子邮件...”从 SSMS 中的数据库邮件节点工作。

Azure 中是否缺少我需要打开的端口或要设置的端点?我们正在运行带有 SQL Server 2016 的 Windows 2016 数据中心 VM。

4

1 回答 1

0

事实证明,问题在于 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 Server

如果您可以在同一个文件夹中打开 DatabaseMail.exe,您就可以判断它是否正常工作。如果不是,则配置文件很可能有问题。

于 2017-03-13T17:52:45.340 回答