我对这个话题进行了一些研究,我得出的结论是,我想做的事情根本就不可能。无论从Outlook对象库使用什么方法;似乎任何由.display和.getInspector等函数自动填充的签名都会在以后调用.body,.HTMLBody或.RTFBody时被擦除。我已经得到了很多很好的建议,比如下面的内容,但无论签名是如何填充的,似乎.body的任何变体都会擦除签名。
Dim OutApp As Object
Dim OutMail As Object
Dim signature As String
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.BodyFormat = olFormatHTML
.HTMLBody = "f"
.Display
End With
signature = OutMail.HTMLBody
我最近一直在想,是否可以将位于\ AppData \ Roaming \ Microsoft \ Signature中的.htm签名文件放入电子邮件本身,将其包含在.body中?有没有人知道使用.display和.getInspector输入签名的替代方法?
编辑2:
Dim OutApp As Object
Dim OutMail As Object
Dim signature As String
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
OutMail.Display
signature = OutMail.HTMLBody
With OutMail
.HTMLBody = "fdA" & signature
'.BodyFormat = olFormatHTML
End With
答案 0 :(得分:0)
身体被彻底清除,因为你的代码明确地消除了它。或者,在您的特定情况下,Outlook从不应用签名,因为它看到HTML主体先前已设置。
Outlook会在您致电Display
或GetInspector
时添加签名。在您的情况下,首先调用Display
(此时添加签名),然后读取HTMLBody
属性(它现在将包含签名)。将它与你的html主体合并(注意两个HTML字符串不能简单地连接,你必须合并它们),然后重新设置HTMLBody属性。