我已经阅读了 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取代,那么我会诅咒他们,但至少我会做一个有意义的陈述,而目前最肯定的不是.

我认为来自微软的引用声明非常可怕并且完全令人困惑,我不认为编写它的人有任何关于SMTP服务器如何工作的线索.它没有解释为什么它被弃用或者它有什么问题.也许存在安全问题或缓冲区溢出,但如果您不在公共端口上暴露它,我会毫不犹豫地使用它.

这是我做的:

>在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上,但我认为这一切仍然适用.

windows-server-2012 – 什么取代了Windows Server 2012中的IIS SMTP服务器的更多相关文章

  1. Xcode 4 / iOS – 使用SMTP从我的应用程序发送电子邮件

    我一直在寻找一个框架,只需让我从我的应用程序内发送一封电子邮件.我已经尝试过MailCore,Pantomime和SKPSMTP,没有运气.我不能让他们在Xcode中编译,所以我推测他们已经过时了.有什么办法可以做到吗?谢谢.解决方法您可以轻松地从iOS设备发送电子邮件.不需要实现SMTP和所有.在iOS中使用内置电子邮件功能的最佳方法是让您访问通讯录!为了完整起见,如果用户按取消或发送,我必须写这个选择器来关闭电子邮件窗口–快乐编码…

  2. 尝试使用swift mailer,gmail smtp,php发送邮件

    这里是我的代码:在运行时出现此错误…

  3. 如何在android中设置多个SMTP服务器?

    我的问题是如何设置多个SMTP服务器在Android中发送邮件,如:雅虎,hotmail,gmail,rediff任何类型的域名将在发送邮件时起作用.任何人都可以建议任何网站或任何想法吗?请帮帮我,谢谢你.解决方法以下是GMail,Yahoo!的测试设置.和Hotmail.使用适用于Android的JavaxMail端口进行测试.

  4. php使用pear_smtp发送邮件

    这篇文章主要介绍了php使用pear_smtp发送邮件的相关资料,内容很丰富,感兴趣的小伙伴们可以参考一下

  5. Laravel框架实现的使用smtp发送邮件功能示例

    这篇文章主要介绍了Laravel框架实现的使用smtp发送邮件功能,结合实例形式分析了Laravel框架相关配置及邮件发送操作技巧,需要的朋友可以参考下

  6. PHP实现SMTP邮件的发送实例

    在本篇文章中我们给大家详细分享了PHP实现SMTP邮件的发送的相关实例内容,有兴趣的朋友们可以学习下。

  7. 运行Node.js的IIS扩展iisnode安装配置笔记

    这篇文章主要介绍了运行Node.js的IIS扩展iisnode安装配置笔记,iisnode的扩展可以把Node.js程序托管到IIS,托管之后也意味着可以使用IIS里面的各种功能,需要的朋友可以参考下

  8. php smtp实现发送邮件功能

    这篇文章主要为大家详细介绍了php smtp实现发送邮件功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  9. php通过smtp邮件验证登陆的方法

    这篇文章主要介绍了php通过smtp邮件验证登陆的方法,涉及php通过socket针对SMTP邮件服务器进行连接、读写、验证等相关操作技巧,需要的朋友可以参考下

  10. 在IIS下安装PHP扩展的方法(超简单)

    这篇文章主要介绍了在IIS下安装PHP扩展的方法,非常简单,具有参考借鉴价值,需要的朋友可以参考下

随机推荐

  1. static – 在页面之间共享数据的最佳实践

    我想知道在UWP的页面之间发送像’selectedItem’等变量的最佳做法是什么?创建一个每个页面都知道的静态全局变量类是一个好主意吗?

  2. .net – 为Windows窗体控件提供百分比宽度/高度

    WindowsForm开发的新手,但在Web开发方面经验丰富.有没有办法为Windows窗体控件指定百分比宽度/高度,以便在用户调整窗口大小时扩展/缩小?当窗口调整大小时,可以编写代码来改变控件的宽度/高度,但我希望有更好的方法,比如在HTML/CSS中.在那儿?

  3. 使用Windows Azure查询表存储数据

    我需要使用特定帐户吗?>将应用程序部署到Azure服务后,如何查询数据?GoogleAppEngine有一个数据查看器/查询工具,Azure有类似的东西吗?>您可以看到的sqlExpressintance仅在开发结构中,并且一旦您表示没有等效,所以请小心使用它.>您可以尝试使用Linqpad查询表格.看看JamieThomson的thispost.

  4. windows – SetupDiGetClassDevs是否与文档中的设备实例ID一起使用?

    有没有更好的方法可以使用DBT_DEVICEARRIVAL事件中的数据获取设备的更多信息?您似乎必须指定DIGCF_ALLCLASSES标志以查找与给定设备实例ID匹配的所有类,或者指定ClassGuid并使用DIGCF_DEFAULT标志.这对我有用:带输出:

  5. Windows Live ID是OpenID提供商吗?

    不,WindowsLiveID不是OpenID提供商.他们使用专有协议.自从他们的“测试版”期结束以来,他们从未宣布计划继续它.

  6. 如果我在代码中进行了更改,是否需要重新安装Windows服务?

    我写了一个Windows服务并安装它.现在我对代码进行了一些更改并重新构建了解决方案.我还应该重新安装服务吗?不,只需停止它,替换文件,然后重新启动它.

  7. 带有双引号的字符串回显使用Windows批处理输出文件

    我正在尝试使用Windows批处理文件重写配置文件.我循环遍历文件的行并查找我想要用指定的新行替换的行.我有一个’函数’将行写入文件问题是%Text%是一个嵌入双引号的字符串.然后失败了.可能还有其他角色也会导致失败.如何才能使用配置文件中的所有文本?尝试将所有“在文本中替换为^”.^是转义字符,因此“将被视为常规字符你可以尝试以下方法:其他可能导致错误的字符是:

  8. .net – 将控制台应用程序转换为服务?

    我正在寻找不同的优势/劣势,将我们长期使用的控制台应用程序转换为Windows服务.我们为ActiveMQ使用了一个叫做java服务包装器的东西,我相信人们告诉我你可以用它包装任何东西.这并不是说你应该用它包装任何东西;我们遇到了这个问题.控制台应用程序是一个.NET控制台应用程序,默认情况下会将大量信息记录到控制台,尽管这是可配置的.任何推荐?我们应该在VisualStudio中将其重建为服务吗?我使用“-install”/“-uninstall”开关执行此操作.例如,seehere.

  9. windows – 捕获外部程序的STDOUT和STDERR *同时*它正在执行(Ruby)

    哦,我在Windows上:-(实际上,它比我想象的要简单,这看起来很完美:…是的,它适用于Windows!

  10. windows – 当我试图批量打印变量时,为什么我得到“Echo is on”

    我想要执行一个简单的批处理文件脚本:当我在XP中运行时,它给了我预期的输出,但是当我在Vista或Windows7中运行它时,我在尝试打印值时得到“EchoisOn”.以下是程序的输出:摆脱集合表达式中的空格.等号(=)的两侧可以并且应该没有空格BTW:我通常在@echo关闭的情况下启动所有批处理文件,并以@echo结束它们,所以我可以避免将代码与批处理文件的输出混合.它只是使您的批处理文件输出更好,更清洁.

返回
顶部