0

嗨,any1 可以告诉我如何在不使用 sendgrid 或任何其他第 3 方的情况下在 azure 中实现电子邮件功能。我们可以有服务总线来连接天蓝色和交换服务器来发送电子邮件吗

4

2 回答 2

2

问题不在于必须使用第三方,而在于安全和防火墙的影响——尤其是对于企业安全霸主而言。交换服务器可以启用传出 smtp(即使有用户名和密码),任何应用程序(包括在 Azure 上运行的应用程序)都可以轻松发送传出 SMTP。您总是会遇到的问题是交换服务器周围的安全性不允许来自公共 IP 地址的 smtp(黑客经常扫描开放端口 25,以便他们可以通过毫无戒心的邮件服务器中继垃圾邮件)。Windows Azure(角色和网站)无法使用固定(传出)IP,因此无法创建防火墙规则。

您的选择是:

  1. 使用您的公司网络设置 VPN,以便您的 Azure 实例从私有 IP 地址发送。
  2. 在 Azure VM 上运行邮件中继服务。虚拟机可以无限租用一个 IP 地址,所以不会改变(很多)。有在 Linux 上运行的简单而廉价的邮件传输代理服务。
  3. 使用任何 'ol smtp 服务器。如果您发送的内容不多,您可以使用 Google 甚至 outlook.com。Outlook.com 允许您配置托管在其他地方的帐户,因此您应该能够将 smtp 与您的 windows live id(Microsoft 帐户)一起使用。

我会避免编写使用服务总线之类的复杂代码和服务。System.Net.Mail 应该用于发送到 smtp 服务器。

于 2013-04-22T13:47:16.050 回答
0

我过去看到的一件事是让 Windows Azure 应用程序将消息放入队列中,以及可选的一些较大的数据(附件、大正文等)放在一个 blob 中。这将获取存储在 Windows Azure 存储中的数据。从那里,本地应用程序(例如 Windows 服务)可以提取队列和 blob 数据,构建电子邮件,并将其发送到本地 Exchange 服务器。

如果您需要将所有内容都托管在云上,那么我认为您应该能够将您的 Windows Azure 应用程序连接到 Exchange Web 服务端点(假设您可以正确保护它并建立 Web 服务连接)。

于 2013-04-22T13:15:27.407 回答