email - Outlook 电子邮件脚本读取 UTF8 文件
问题描述
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 文件作为电子邮件签名正文,但运行此脚本后它不显示。也许我需要将它设置为不同的变量或什么?
解决方案
VBScript 疑难解答 101:删除On Error Resume Next
,这样您就可以实际看到哪里出了问题。与流行的看法相反,该声明不会神奇地使错误消失。它只是阻止口译员告诉您有关它们的信息。
永远不要On Error Resume Next
在生产代码使用globel
*走出肥皂盒*
话虽如此,您将文本读入变量BodyTEXT
,它工作得很好。但是,您然后尝试adoStream.TypeText
用它调用。如果没有全局On Error Resume Next
该语句将引发错误
对象不支持此属性或方法。
因为ADODB.Stream
对象没有这样的方法。
你可能打算改写objSelection.TypeText BodyTEXT
。
推荐阅读
- c# - 使用hangfire队列计数器递增
- python - 如何将以特定方式替换字符串的函数应用于python数据框系列
- java - spring-boot-starter-web 和 spring-boot-starter-webflux 不能一起工作吗?
- c# - 缩放后未重新计算质心
- javascript - 获取存储在解析服务器上的图像文件
- python - 将 ctypes c_void_p 转换为 C 输出参数
- c# - 无效的列名 asp
- html - Bootstrap 4 nav-tabs 打开时的下拉菜单颜色
- angular - PrimeNG 基于对象数组的预选复选框
- ios - 使用不同的数据重定向到相同的 UIViewController?