Как установить повторяющиеся заголовки без перезаписи при создании электронной почты с помощью VBScript CDO.Message? - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь сгенерировать некоторые электронные письма, используя 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-Элемент отправлен.

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 между каждой строкой заголовка, что, как и ожидалось, не имело никакого значения

Есть ли простой способ, которым яполностью отсутствует добавление набора повторяющихся заголовков?

...