Vbscript 在MSScriptControl.ScriptControl对象中使用CDO.message.HTMLBody

Vbscript 在MSScriptControl.ScriptControl对象中使用CDO.message.HTMLBody,vbscript,cdo.message,msscriptcontrol,Vbscript,Cdo.message,Msscriptcontrol,在c-ish语言中,我实例化了一个MSScriptControl.ScriptControl对象,并使用.AddCode方法运行VBScript,而VBScript又实例化了CDO.Message对象 然而,每次我到了公园 “objMsg.HTMLBody=\”“+电子邮件\u body+”\“\n” (注意这是在c中,VBScript是: objMsg.HTMLBody=email\u body 代码行,我出错了 Microsoft VBScript编译错误:未终止的字符串常量 最后,我发现问

在c-ish语言中,我实例化了一个MSScriptControl.ScriptControl对象,并使用.AddCode方法运行VBScript,而VBScript又实例化了CDO.Message对象

然而,每次我到了公园
“objMsg.HTMLBody=\”“+电子邮件\u body+”\“\n”
(注意这是在c中,VBScript是:
objMsg.HTMLBody=email\u body
代码行,我出错了

Microsoft VBScript编译错误:未终止的字符串常量


最后,我发现问题在于变量
email\u body
包含字符10(
\n
),它在VBScript中被解释为一行代码的结尾(但在右引号之前),这是一个语法错误

我无法想象我是唯一一个错过这个的人,所以我在这里写了一个小小的“知识库”

决议: 在父语言中(在本例中,是一种称为hsl的奇怪的c形式),使用字符串替换方法将
\n
的所有增量替换为

,并且现在工作正常,例如:
StrReplace(电子邮件正文,“\n”,“

然后调用
ScriptControl.AddCode(…);
方法