将带有图片的默认签名插入电子邮件

时间:2020-05-26 02:13:09

标签: vba outlook

我正在尝试编写VBA代码,该代码会将默认Outlook签名插入在Excel中生成的电子邮件中。有一些人可能会使用Excel模板,因此我需要VBA代码来挑选正在创建电子邮件的用户的默认签名。

我在网上找到了很多有用的东西,但是我无法使它起作用。我是VBA的新手,所以仍然在学习。

以下代码适用于我需要的电子邮件-期望签名,因为我删除了所有代码,因为我无法正常工作。

任何帮助将不胜感激。

Sub EmailCreator()

ActiveWorkbook.Save

    Dim olApp As Outlook.Application
    Dim olMail As Outlook.MailItem
    Dim blRunning As Boolean

    blRunning = True
    On Error Resume Next
    Set olApp = GetObject(, "Outlook.Application")
    If olApp Is Nothing Then
        Set olApp = New Outlook.Application
        blRunning = False
    End If

    On Error GoTo 0

    strBody = "This is my message in HTML format"

    Set olMail = olApp.CreateItem(olMailItem)

    With olMail
        .Subject = "abc"
        .Attachments.Add ActiveWorkbook.FullName
        .HTMLBody = strBody
        .Display
    End With

    If Not blRunning Then olApp.Quit

    Set olApp = Nothing
    Set olMail = Nothing


End Sub

1 个答案:

答案 0 :(得分:1)

首先,当您致电Display 如果邮件正文尚未修改时,Outlook将插入默认签名。

第二,一旦调用Display(并且消息主体中填充了签名),您将需要合并两个HTML字符串-不仅是设置HTMLBody属性(这会消灭它)签名),而不是将两个HTML字符串(无法产生有效的HTML文档)串联在一起,而是合并。最简单的方法是查找“ <body”子字符串的位置,滚动到下一个“ >”字符(以照顾带有属性的body标签),然后在那之后插入HTML “ >”字符。