什么取代Windows Server 2012中的IIS SMTP服务器


30

我已经在http://technet.microsoft.com/zh-cn/library/hh831568.aspx上阅读了有关Windows 2012中不推荐使用和删除的功能的说明,并且该说明说不推荐使用SMTP。我假设这是指IIS SMTP服务器。建议是改用System.Net.Smtp,但我认为这是打印错误,因为在其他地方找不到对System.Net.Smtp的引用。

如果实际上是说System.Net.Mail,那只是一个API,而我看不到API如何替换服务器进程。我需要一种服务,该服务接受端口25上的连接,并将电子邮件路由到以前使用的IIS SMTP这样的目的地。

有人可以在这里澄清情况吗?如果他们说它已被Exchange取代,那么我会骂他们,但至少那对我来说是有意义的声明,而目前的声明绝对不是。

Answers:


19

我认为来自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服务器将尝试通过您的smarthost为您中继邮件,如果无法立即发送,则稍后将重试。
    • 重要的是要意识到有时甚至smtp.gmail.com不会回复或者您的网络已关闭。(令人惊讶的是,当我第一次尝试直接发送邮件时)
    • 如果没有中间的SMTP服务器来存储邮件,您就不能只是从.NET中“发送并忘记”,并且您必须找出某种重试机制,而对于您而言,这一切对于SMTP服务器都是完全不必要的。
    • 我相信,如果您(在ISP / GMail上)有SMTP中继限制,则SMTP服务器将继续重试并在第二天发送邮件-如果您每天的流量不一致或没有限制而没有限制,则另一个巨大的好处实现。

继续使用它。微软没有提供替代产品,它是免费的,为什么不呢。我认为如果没有替代品,“已弃用”就没有任何意义。

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


4
是的,在Windows Server 2012上也是如此。我总是惊讶地发现,很少有人意识到使用本地SMTP服务器对邮件进行排队的好处!
理查德

1
除了排队外,SMTP服务器还可以记录日志,据我所知,IIS 8.5中的SMTP配置不提供任何日志记录。我们通过IIS 6添加SMTP服务器,并告诉IIS 8.5连接到本地主机只是为了获取W3C日志文件。
培根片

14

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

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

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


4

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

在早期版本的Windows中打开IIS SMTP有两件事:

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

如果您使用的这些库没有任何配置,则它们将提交到本地IIS SMTP服务器。程序员本质上是懒惰的,所以既然用了最少的精力,那便是他们所做的。许多都没有提供通过其他SMTP服务器发送电子邮件的方法。

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


2
SMTP服务器是Windows Server 2012中Web服务器角色的功能,可以安装。它已被弃用,但未被删除。
joeqwerty 2012年

我认为它仍然出现在“ IIS6管理控制台”下,对吗?
西蒙(Simon)

2
@Simon是的,仍然使用IIS 6的2002年版本的旧管理控制台来配置Windows Server 2012中的SMTP。:) IIS 6管理功能是对SMTP功能的依赖。
bzlm

1
忽略无知的懒惰言语。有关为什么本地SMTP服务器是一个好主意(以及大多数其他OS(客户端服务器)上的标准)的详细信息,请参见此答案
bzlm 2015年

Windows Server 10或它的名字怎么样?同样的交易吗?
西蒙(Simon)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.