1

我有一个用 JScript 编写的 ASP 页面,它使用 CDO.Message 发送电子邮件。为了指定 SMTP 服务器(和其他选项),我正在做这样的事情:

mail.Configuration.Fields.Item(
    "http://schemas.microsoft.com/cdo/configuration/smtpserver") =
    "smtp.example.com";

现在,问题来了。我将此代码放在一个独立的包含文件中,该文件作为 JavaScript 包含在 HTML 页面中,以便我可以在浏览器中针对它运行单元测试(使用 JsUnit 等)。我有 JavaScript 模拟对象(服务器、请求等),它们为包含的 JScript 代码创建模拟 ASP 环境。我剩下的唯一问题是 CDO.Message 选项设置。由于f(x) = y上述代码摘录中使用的语法不是有效的 JavaScript(无效的左操作数),我无法在浏览器中运行这段代码(原样)。我目前只是在我的单元测试中使用检测环境是否是真正的 ASP 的条件绕过它。

我认为没有 JavaScript 解决方法。我正在寻找一种替代语法(可能以不同方式使用 ActiveX 接口)来设置 CDO.Message 选项,该选项在语法上也是有效的 JavaScript。

4

2 回答 2

3

在查看http://msdn.microsoft.com/en-us/library/ms526318(EXCHG.10).aspx上的 C++ 代码示例时,我找到了答案。

解决方案是明确地对Value属性进行分配:

mail.Configuration.Fields.Item(
    "http://schemas.microsoft.com/cdo/configuration/smtpserver").Value =
    "smtp.example.com";

这样,上面的代码是有效的 JavaScript,可以使用模拟配置对象进行测试。

于 2009-01-22T17:24:33.987 回答
1

在为 IIS 编写服务器端 Javascript 时,我遇到了同样的问题,该f(x) = y语法在我的 IDE 语法检查器中失败。我发现有用的解决方案是 JScript 条件注释,如下所示:

f(x)/*@cc_on@if(0)*/[0]/*@end@*/ = y;

它将下标索引 [0] 放在末尾,除非在 Microsoft 的 JScript 引擎中运行。但是,不可否认,我的解决方案有点老套。我认为在大多数情况下,你的更干净,所以感谢分享。

-西蒙

于 2013-01-14T06:06:53.637 回答