从Windows 2012 R2服务器核心上的经典ASP发送电子邮件

从Windows 2012 R2服务器核心上的经典ASP发送电子邮件

问题描述:

我们有一个经典的ASP应用程序,我们从Windows 2008 R2迁移到Windows 2012 R2核心。从Windows 2012 R2服务器核心上的经典ASP发送电子邮件

显然核心版本的Windows不包括cdosys或cdonts,因此我们的应用程序不能再发送电子邮件。

我能找到的大部分建议都建议使用system.net.mail来发送电子邮件,当然这是一种.NET技术,我们正在使用传统的ASP。

我们的系统上有.NET,但我不确定传统的ASP是否可以与.NET页面发送电子邮件?

除了使用像Persits ASPEmail这样的第三方COM工具,还有什么本地方法可以解决这个问题吗?

我们不希望将服务器核心实例转换为完整版本的Windows。用火箭筒杀死一只蚂蚁。这只会影响我们的代码中的两个地方,其他所有的核心工作都很好。

+0

我有这个问题,我自己和[找到答案](http://*.com/a/42509944/692942)。 – Lankymart

+0

AFAIK第三方电子邮件组件如ASPEmail只是CDO的包装。我从来没有尝试过发送电子邮件,但应该可以使用msxml将数据发布到一个asp.net webform。看到这个问题 - http://*.com/questions/1463635/how-to-perform-an-http-post-request-in-asp – John

+0

@约翰在那个特定的问题,这个问题稍有不同,我发布的答案作为一种解决方法,但它从来没有真正直接回答过这个问题。事后看来,我应该发布一个问题并自己回答。 – Lankymart

不幸的是,CDONTS前段时间被CDOSYS所取代。从Windows Server 2008迁移到Windows Server 2012时,我遇到了完全相同的问题,但设法为find a fix

它涉及从Windows Server 2008服务器获取cdonts.dll文件的副本,并将其添加到Windows Server 2012服务器,然后将其注册到相关COM子系统,而无需更改代码或安装第三方库。

希望同样的方法可以与Core一起工作,但我没有测试过它。

+0

我没有尝试CDONTS,但我确实尝试过使用CDOSYS的技巧,但它不起作用:(我想我可以尝试CDONTS的咯咯。 – Brad

+0

@brad我从来没有用CDOSYS CDONTS试过它,它取决于如何CDO对象在代码中实例化,如果它是'Server.CreateObject(“CDONTS.NewMail”)''cdonts.dll'需要复制和注册。如果它不起作用,可能是由于IIS中的应用程序池在32位注册表中注册时没有为32位启用它可以是雷区,有一个注册COM的指南[这里](http://*.com/a/35985827/692942) – Lankymart

+0

@ Lankymart - CDONTS是否可以在当前版本的IIS上运行?根据我对IIS7及以上版本的经验,即使SMTP服务器在同一台机器上,CDOSYS也总是需要一个配置部分,这让我怀疑CDONTS在相同的环境中是无用的。 – John