Outlook电子邮件脚本读取UTF8文件

时间:2018-09-03 08:27:12

标签: email vbscript outlook signature

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 :(得分:0)

VBScript故障排除101:删除array1,因此您实际上可以看到出了什么问题。与普遍的看法相反,该声明并没有使错误消失。它只是阻止解释器告诉您有关它们的信息。

从不 在生产代码中使用Globel On Error Resume Next

*离开肥皂盒*

话虽如此,您将文本读入变量On Error Resume Next中,该变量工作正常。但是,然后尝试使用它调用BodyTEXT。如果没有全局adoStream.TypeText,该语句将引发错误

  

对象不支持此属性或方法。

因为On Error Resume Next个对象没有这种方法。

您可能打算改写ADODB.Stream