如何在Windows 2008上的IIS 7.5中配置CDOSYS?
和你们很多人一样,我正在将一个传统的经典ASP应用程序从Windows2003服务器迁移到Windows2008。我有这个大部分工作,但我无法通过它发送电子邮件。这是因为CDOSYS配置不正确。尽管花了大约4-5个小时在谷歌上搜索和运行API文档,甚至搜索了文件系统和系统注册表上的所有文件,但我还是无法确定这是在哪里设置的 旧应用程序的ASP.NET部分工作正常。它能够在不进行身份验证的情况下将电子邮件发送到本地主机,然后通过具有身份验证的邮件服务器发送到目的地 为了方便起见,我将源代码中的VB6调用转换为Powershell脚本:如何在Windows 2008上的IIS 7.5中配置CDOSYS?,windows,iis,windows-server-2008-r2,windows-server-2003,cdo.message,Windows,Iis,Windows Server 2008 R2,Windows Server 2003,Cdo.message,和你们很多人一样,我正在将一个传统的经典ASP应用程序从Windows2003服务器迁移到Windows2008。我有这个大部分工作,但我无法通过它发送电子邮件。这是因为CDOSYS配置不正确。尽管花了大约4-5个小时在谷歌上搜索和运行API文档,甚至搜索了文件系统和系统注册表上的所有文件,但我还是无法确定这是在哪里设置的 旧应用程序的ASP.NET部分工作正常。它能够在不进行身份验证的情况下将电子邮件发送到本地主机,然后通过具有身份验证的邮件服务器发送到目的地 为了方便起见,我将源代码中的VB
$config = new-object -com "CDO.Configuration";
$config.Load(1);
$smtp = new-object -com "CDO.Message";
$smtp.Configuration = $config;
$smtp.From = "me@example.com"
$smtp.To = "me@example.com"
$smtp.Subject = "test"
$smtp.TextBody = "Message";
$smtp.Send();
此脚本在我的原始服务器上正确发送电子邮件。在新服务器上,调用$smtp.Send()
时返回此错误:
使用“0”参数调用“Send”时出现异常:“SendUsing”配置值无效
两台服务器之间的配置完全不同。使用上面的$config
参考,我在两台服务器上执行了$config.Fields | Format List-Property Name,Value
旧服务器(它工作的地方):
新服务器:
Name : http://schemas.microsoft.com/cdo/configuration/languagecode
Value : en-gb
Name : http://schemas.microsoft.com/cdo/configuration/postusing
Value : 0
Name : http://schemas.microsoft.com/cdo/configuration/sendusing
Value : 0
Name : http://schemas.microsoft.com/cdo/configuration/usemessageresponsetext
Value : True
Name : urn:schemas:calendar:timezoneid
Value : 0
似乎我要做的就是将其配置为默认情况下将邮件发送到本地主机,或将邮件放入分拣目录。IIS SMTP服务器已配置为查看此目录
但是,我无法确定这些值的设置位置。它们必须在文件或注册表中的某个位置进行设置,但即使在C驱动器中搜索“\Pick”和“usemessageresponsetext”等短语,也没有发现任何信息。如果它们在某个位置,我猜它们在某个二进制数据存储中
CDOSYS的所有示例都涉及直接配置CDO.Configuration或CDO.Message实例,但在整个代码中,我们的应用程序都从IIS加载配置,因此这是由某人在某一点上设置的
我错过了经典ASP时代,因此我处于一个非常陌生的领域。也就是说,我的同事(他们是活跃的经典ASP开发人员)不知道如何配置这个,而最初设置这个的人已经离开了。我完全有可能在这里错过了一个非常简单的基本概念。我发现我能够帮助我们e我作为管理员登录时的Powershell脚本示例。从中进行的研究使我找到了一个解决该问题的方法。不幸的是,它现在导致一些死链接,这意味着它无法工作。但是,它有足够的提示来组合解决方案:
C:\ProgramFiles(x86)\IIS Resources\Metabase Explorer\MBExplorer.exe
/LM/SmtpSvc
,右键单击它并选择属性/LM/SmtpSvc/1
,并在此节点上设置相同的权限c:\inetpub\mailroot
cscript metaacl.vbs IIS://LOCALHOST/SMTPSVC %computername%\IIS_IUSRS R
cscript metaacl.vbs IIS://LOCALHOST/SMTPSVC/1 %computername%\IIS_IUSRS R
cscript metaacl.vbs IIS://LOCALHOST/SMTPSVC %computername%\IIS_IUSRS R
cscript metaacl.vbs IIS://LOCALHOST/SMTPSVC/1 %computername%\IIS_IUSRS R