如果他们真的想说System.Net.Mail,那只是一个API,我看不到API如何取代服务器进程.我需要一个接受端口25上的连接的服务,并将电子邮件路由到目标,就像过去使用的IIS SMTP一样.
有谁能澄清这里的情况吗?如果他们说它被Exchange取代,那么我会诅咒他们,但至少我会做一个有意义的陈述,而目前最肯定的不是.
这是我做的:
>在IIS中,我为域设置“SMTP电子邮件”以指向10.0.0.1.我在父文件夹中对任何已部署的站点执行此操作,否则在重新部署时将被删除.如果你想要你可以直接把它放在web.config中,但它的灵活性不那么灵活.
>在SMTP服务器(通过IIS6管理控制台)中,我设置了10.0.0.1的SMTP服务器.显然,正如我之前所说,这不是暴露在公共互联网上.
>我通过smtp.gmail.com或smtp.live.com将此服务器配置为relay through a Smart Host
>在我的.NET应用程序中,我使用Mail API使用新的SmtpClient()发送消息.这将从IIS中获取配置,并将邮件发送到我的SMTP服务器10.0.0.1
>当我发送邮件时,它立即返回,因为它只是发送到localhost
>现在,这是使用无法低估的本地SMTP服务器以及“System.Net.Smtp”本身无法替代的重要优势:
> SMTP服务器将尝试通过您的智能主机为您中继邮件,如果无法立即发送,则稍后将重试.
>重要的是要意识到有时甚至smtp.gmail.com都不会回复,或者你的网络可能会崩溃. (当我第一次尝试直接发送邮件时,这很常见)
>如果没有中间SMTP服务器来存储消息,您不能只是从.NET发送“忘记”,并且您必须找出某种重试机制,这对于为您完成所有操作的SMTP服务器是完全没有必要的.
>我相信如果你有一个SMTP中继限制(在你的ISP / GMail上),那么SMTP服务器将继续重试并在第二天发送消息 – 如果你每天都有不一致的流量或达到你的限制,那么另一个巨大的好处没有意识到.
继续使用它.微软没有提供替代品,它是免费的,为什么不呢.如果没有替代品,“弃用”在我看来意味着什么.
免责声明:我仍然在Server 2008上,但我认为这一切仍然适用.