VBA 回复电子邮件但缺少某些信息

VBA to reply an email but some info is missing

我已经编写了一个工作代码来回复特定格式的电子邮件,但是结果在 Html body(发件人、发送到, 抄送, 主题。我什至不确定这是否称为邮件 header).

如果我点击 Outlook 2013 的默认 'reply' 按钮,这些信息会在最后一封电子邮件之前 auto-generated,而在上面则是我的回复内容。

那么我应该使用哪个函数来调用这些信息呢?该信息必须出现在我的所有回复中,因此我需要以一种或另一种方式解决。我的代码:

'there is a getsignature function before the code.
Public Sub my_reply()
Dim objOL As Outlook.Application
Dim objMsg As Object
Dim objSelection As Outlook.Selection
Dim objMail As Outlook.mailitem
Dim StrSignature As String


StrSignature = GetSignature("C:\Users\xxx\xxx\Microsoft\Signatures\ABC.htm")


Set objOL = CreateObject("Outlook.Application")
Set objSelection = objOL.ActiveExplorer.Selection
For Each objMsg In objSelection
    If objMsg.Class = olMail Then
       objMsg.Categories = "Category A"

Set myreply = objMsg.Reply
myreply.To = objMsg.SenderEmailAddress
myreply.BCC = "xxx@abc" & " ; " & "xxx@abc" 
myreply.Subject = "XYZ matter" & objMsg.Subject
myreply.Display
myreply.HTMLBody = StrSignature & "<br><br>" & objMsg.HTMLBody


Release:
  Set objMsg = Nothing
  Set oExplorer = Nothing
        
     End If
  
    Next

End Sub

ReplyAll 应该得到抄送。如果您只关心缺少文本,请忽略此选项。

Set myReply = objMsg.ReplyAll

您正在用 objMsg.HTMLBody

覆盖初始 myreply.HTMLBody
myreply.HTMLBody = StrSignature & "<br><br>" & objMsg.HTMLBody

改为附加到初始 myreply.HTMLBody

Option Explicit

Public Sub my_replyAll()

'Dim objOL As Outlook.Application
Dim objMsg As Object
Dim objSelection As Selection

'Dim objMail As Outlook.mailitem
Dim myReply As mailitem

Dim StrSignature As String

StrSignature = GetSignature("C:\Users\xxx\xxx\Microsoft\Signatures\ABC.htm")

' Set objOL = CreateObject("Outlook.Application")
'Set objSelection = objOL.ActiveExplorer.Selection
Set objSelection = ActiveExplorer.Selection

For Each objMsg In objSelection

    If objMsg.Class = olMail Then

        Set myReply = objMsg.ReplyAll

        myReply.To = objMsg.SenderEmailAddress

        myReply.BCC = "xxx@abc" & " ; " & "xxx@abc"

        myReply.Subject = "XYZ matter " & objMsg.Subject

        myReply.Display

        'myReply.HtmlBody = StrSignature & "<br><br>" & objMsg.HtmlBody
        myReply.HtmlBody = StrSignature & "<br><br>" & myReply.HtmlBody

Release:
        Set objMsg = Nothing

    End If

Next

End Sub