我正在尝试使用VBScript CDO.Message生成一些电子邮件,代码如下。
接收客户IBM(Lotus)Notes需要使用多次重复的一个标头“ X-Notes-Item”提供的许多信息。
即
[..snip..] From: [from@hidden].com X-Notes-Item: value 1; name=Key1 X-Notes-Item: value 2; name=Key2 X-Notes-Item: value 3; name=Key3 MIME-Version: 1.0 Content-type: text/html; charset=UTF-8 [..snip..]
但是似乎脚本只设置了一次标题,然后重复覆盖了它,因此仅发送X-Notes-Item的最终值。
Option Explicit
Dim objMessage, objShell
Set objShell = CreateObject("wscript.Shell")
Set objMessage = CreateObject("CDO.Message")
With objMessage
.Subject = "[Blah]"
.From = "[from@hidden].com"
.Sender = "[sender@hidden].com"
.To = "[to@hidden].com"
.Fields("urn:schemas:mailheader:X-Notes-Item") = "value 1; name=Key1"
.Fields("urn:schemas:mailheader:X-Notes-Item") = "value 2; name=Key2"
.Fields("urn:schemas:mailheader:X-Notes-Item") = "value 3; name=Key3"
.Fields.Update
.HTMLBody = "<html><body><p>[Blah]</p></body></html>"
.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "PWNOTSMTP"
.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Configuration.Fields.Update
.Send
End With
Set objMessage=Nothing
我也尝试过使用列表,但出现错误
字段更新失败。有关更多信息,请检查单个字段对象的Status属性。
但是我一点也不精通VBScript,所以不知道这是否接近正确的实现方式,或者它永远无法正常工作?
'...
Dim list
Set list = CreateObject("System.Collections.ArrayList")
list.Add "value 1; name=Key1"
list.Add "value 2; name=Key2"
list.Add "value 3; name=Key3"
With objMessage
'...
.Fields("urn:schemas:mailheader:X-Notes-Item") = list
.Fields.Update
'...
End With
'...
此外,我还抓着稻草,尝试在每个标题行之间添加一个.Fields.Update
,可以预见没有区别
是否存在一种简单的方法,我完全不愿意添加一组重复的标头?