Windows Server 2012 中 IIS SMTP 服务器将由什么替代

Windows Server 2012 中 IIS SMTP 服务器将由什么替代

我已阅读此处的注释http://technet.microsoft.com/en-us/library/hh831568.aspx关于 Windows 2012 中已弃用和已删除的功能,它说 SMTP 已弃用。我认为这是指 IIS SMTP 服务器。建议改用 System.Net.Smtp,但我认为这是印刷错误,因为我在其他地方找不到任何关于 System.Net.Smtp 的引用。

如果他们实际上想说的是 System.Net.Mail,那只是一个 API,我不明白 API 如何取代服务器进程。我需要一个接受端口 25 上的连接并将电子邮件路由到目的地的服务,就像 IIS SMTP 过去所做的那样。

有人能澄清一下这里的情况吗?如果他们说它被 Exchange 取代了,那么我会骂他们,但至少那对我来说是一个有意义的声明,而当前的肯定不是。

答案1

我认为引用的 Microsoft 声明非常糟糕,完全令人困惑,而且我认为写该声明的人根本不了解 SMTP 服务器的工作原理。它没有解释为什么弃用它,也没有解释它是否有任何问题。也许存在安全问题或缓冲区溢出,但如果您不将其暴露在公共端口上,我会毫不犹豫地使用它。

这是我的做法:

  • 在 IIS 中,我为域设置了“SMTP 电子邮件”以指向10.0.0.1。我在任何已部署站点的父文件夹中执行此操作,否则当您重新部署时它将被删除。如果您愿意,您可以将其直接放在 web.config 中,但这样不太灵活。
  • 在 SMTP 服务器中(通过 IIS6 管理控制台),我设置了一个 SMTP 服务器10.0.0.1。显然,正如我之前所说,这不会暴露在公共互联网上。
  • 我将此服务器配置为通过智能主机中继 通过smtp.gmail.comsmtp.live.com
  • 在我的 .NET 应用程序中,我使用 Mail API 发送消息new SmtpClient()。这将从 IIS 获取配置,并将邮件发送到我的 SMTP 服务器10.0.0.1
  • 当我发送邮件时它会立即返回,因为它只是被发送到本地主机

  • 现在,这是使用本地 SMTP 服务器的重要好处,这一点不可低估,并且“System.Net.Smtp”本身无法替代

    • SMTP 服务器将尝试通过您的智能主机为您中继邮件,如果不能立即发送,它将稍后重试。
    • 重要的是要意识到有时甚至smtp.gmail.com不会回复,或者您的网络可能已关闭。(当我第一次尝试直接发送邮件时,这种情况出奇地常见)
    • 如果没有中间 SMTP 服务器来存储消息,您就无法从 .NET 中“发送并忘记”,您必须想出某种重试机制,而对于 SMTP 服务器来说,这完全没有必要,因为它可以为您完成所有工作
    • 我相信如果您有 SMTP 中继限制(在您的 ISP/GMail 上),那么 SMTP 服务器将会不断重试并在第二天发送消息 - 如果您每天的流量不一致或在没有意识到的情况下达到了限制,那么这将是另一个巨大的好处。

继续使用它吧。微软还没有提供替代品,而且它是免费的,所以为什么不呢。在我看来,如果没有替代品,“弃用”就毫无意义。

免责声明:我仍在使用 Server 2008,但我认为所有这些仍然适用。

答案2

Web 服务器角色的 SMTP 功能已被弃用但尚未被删除。您可以安装并使用它,但建议使用另一个(外部)SMTP 服务器。

SMTP 和相关管理工具已弃用。尽管此功能在 Windows Server 2012 中仍然可用,但您应该开始使用 System.Net.Smtp。使用此 API,您将无法将消息插入文件以供拾取;而是将 Web 应用程序配置为使用 SMTP 通过端口 25 连接到另一台服务器。

因此,将来您将安装并使用单独的 SMTP 服务器(其中有很多可用)为在 Windows ServerX 上运行的 Web 应用程序提供 SMTP 服务。

答案3

您链接的文章中的描述太糟糕了!但它试图告诉您的是:

在以前版本的 Windows 中打开 IIS SMTP 会执行两项操作:

  1. 启动了 IIS SMTP 服务器。
  2. 添加了用于发送消息的编程库(即 COM 对象等)。

如果您使用这些库而没有任何配置,它们将提交到本地 IIS SMTP 服务器。程序员天生懒惰,因此,由于这样做对他们来说最省力,所以他们就这么做了。而且许多程序员没有提供通过其他 SMTP 服务器发送电子邮件的方法。

文章应该说的是,IIS SMTP 服务器不再存在,但是仍然提供 SMTP 库,并且应该将应用程序配置为使用不同的 SMTP 服务器。

相关内容