Почтовый скрипт Outlook читает файл UTF8 - PullRequest
0 голосов
/ 03 сентября 2018
On Error Resume Next
Set objSysInfo = CreateObject("ADSystemInfo")
Set WshShell = CreateObject("WScript.Shell")
strUser = objSysInfo.UserName
Set objUser = GetObject("LDAP://" & strUser)
strName = objUser.FullName
strTitle = objUser.Description
strCred = objUser.Info
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Add()
Set objSelection = objWord.Selection
strFailas1 = "1.jpg"
strFailas2 = "2.jpg"
strFailas3 = "3.jpg"
strFailas4 = "4.jpg"
strSPath1 = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERPROFILE%") & "\Appdata\Roaming\Microsoft\Signatures\" & strFailas1
strSPath2 = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERPROFILE%") & "\Appdata\Roaming\Microsoft\Signatures\" & strFailas2
strSPath3 = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERPROFILE%") & "\Appdata\Roaming\Microsoft\Signatures\" & strFailas3
strSPath4 = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERPROFILE%") & "\Appdata\Roaming\Microsoft\Signatures\" & strFailas4
Set objEmailOptions = objWord.EmailOptions
Set objSignatureObject = objEmailOptions.EmailSignature
Set objSignatureEntries = objSignatureObject.EmailSignatureEntries
If (strCred) Then objSelection.TypeText strName & ", " & strCred Else objSelection.TypeText strName
objSelection.TypeParagraph()

Set adoStream = CreateObject("ADODB.Stream")
adoStream.Open
adoStream.Charset = "UTF-8"
adoStream.LoadFromFile "file.txt"
BodyTEXT = adoStream.ReadText(-1)
adoStream.TypeText BodyTEXT
adoStream.Close
Set adoStream = Nothing

Set objSelection = objDoc.Range()
objSignatureEntries.Add "Full Signature", objSelection
objSignatureObject.NewMessageSignature = "Full Signature"
objDoc.Saved = True
objWord.Quit

Я пытаюсь создать VBScript для автоматической генерации подписи электронной почты для всех пользователей в Active Directory, но у меня проблема. Я хочу вставить файл UTF8 * .txt в качестве тела подписи электронной почты, но он не отображается после запуска этого сценария. Может быть, мне нужно установить его как другую переменную или что-то в этом роде?

1 Ответ

0 голосов
/ 03 сентября 2018

Устранение неполадок VBScript 101: удалите On Error Resume Next, чтобы вы могли увидеть, что происходит не так Вопреки распространенному мнению, это утверждение волшебным образом не делает ошибки исчезать. Это только мешает переводчику рассказать вам о них.

Никогда используйте глобел On Error Resume Next в производственном коде.

* сходит с мыла *

С учетом сказанного вы читаете текст в переменную BodyTEXT, которая работает просто отлично. Однако вы затем пытаетесь позвонить adoStream.TypeText с ним. Без глобального On Error Resume Next это утверждение вызвало бы ошибку

Объект не поддерживает это свойство или метод.

потому что ADODB.Stream объекты не имеют такого метода.

Вы, вероятно, намеревались написать objSelection.TypeText BodyTEXT вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...