Vba 自动图像的替代方案+;电子邮件中带有正文文本的HTML签名
我在这个问题上做了很多研究,我得出结论,我想做的是根本不可能的。无论使用Outlook对象库中的任何方法;当.body、.HTMLBody或.RTFBody之后也被调用时,任何由.display和.getInspector等函数自动填充的签名似乎都将被删除。我得到了很多很好的建议,比如下面的建议,但它似乎是。body的任何变体都会擦除签名,无论签名是如何填充的Vba 自动图像的替代方案+;电子邮件中带有正文文本的HTML签名,vba,ms-access,outlook,Vba,Ms Access,Outlook,我在这个问题上做了很多研究,我得出结论,我想做的是根本不可能的。无论使用Outlook对象库中的任何方法;当.body、.HTMLBody或.RTFBody之后也被调用时,任何由.display和.getInspector等函数自动填充的签名似乎都将被删除。我得到了很多很好的建议,比如下面的建议,但它似乎是。body的任何变体都会擦除签名,无论签名是如何填充的 Dim OutApp As Object Dim OutMail As Object
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
主体被清除,因为代码显式地将其清除。或者,在您的特定情况下,Outlook从不应用签名,因为它看到HTML正文是以前设置的
调用
Display
或GetInspector
时,Outlook将添加签名。在您的情况下,首先调用Display
(此时已添加签名),然后读取HTMLBody
属性(它现在将包含签名)。将其与html正文合并(请注意,两个html字符串不能简单地连接起来,必须将它们合并),然后将HTMLBody属性设置回原位。我不确定读取然后合并HTMLBody是什么意思。请看我的编辑上面。通过阅读,您的意思是将HTML签名存储在一个变量中,然后将HTMLBody属性设置为与电子邮件内容和签名变量相等吗?不,阅读HTMLBody属性的值(它现在将包含签名),找到“
”的位置(这样您就可以处理“body”了带有属性的标记)。然后在“
”子字符串之后插入HTML正文。现在将组合字符串设置为HTMLBody
属性。