替代自动图像+ HTML签名与电子邮件中的正文文本

时间:2017-02-26 01:53:47

标签: vba ms-access outlook

我对这个话题进行了一些研究,我得出的结论是,我想做的事情根本就不可能。无论从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

1 个答案:

答案 0 :(得分:0)

身体被彻底清除,因为你的代码明确地消除了它。或者,在您的特定情况下,Outlook从不应用签名,因为它看到HTML主体先前已设置。

Outlook会在您致电DisplayGetInspector时添加签名。在您的情况下,首先调用Display(此时添加签名),然后读取HTMLBody属性(它现在将包含签名)。将它与你的html主体合并(注意两个HTML字符串不能简单地连接,你必须合并它们),然后重新设置HTMLBody属性。