在VBA中,我想回复一封电子邮件,模拟用户点击“全部回复”,但签名图像变成错误

问题描述 投票:0回答:1

我有以下代码。我的目标是基本上在 VBA 中创建一个回复器,准确模拟用户在 Outlook 上单击“全部回复”时会发生的情况。它几乎完美地工作,但我签名中的图像在回复电子邮件中变成了错误。这是代码:

Sub LookForEmail(EmailSubject As String)

    Dim objNS As outlook.Namespace: Set objNS = GetNamespace("MAPI")
    Dim olFolder As outlook.MAPIFolder
    Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
    Dim Item As Object
    Dim NewMail As MailItem
    Dim MailFolder As outlook.Items
    Dim sFilter As String
    Dim Counter As Integer
    
    sFilter = "@SQL=""http://schemas.microsoft.com/mapi/proptag/0x0037001f"" like '%" & EmailSubject & "%'"
    Set MailFolder = olFolder.Items.Restrict(sFilter)
    MailFolder.Sort "ReceivedTime", True
    
    For Each Item In MailFolder
        If TypeOf Item Is outlook.MailItem Then
            Dim oMail As outlook.MailItem: Set oMail = Item
            If oMail.Subject = EmailSubject Then
                
                Set NewMail = outlook.CreateItem(olMailItem)

                With NewMail
                    .Display
                    .HTMLBody = "<HTML><Body><span>test</span><Body></HTML>" _
                    & "<span>" & "test2" & "</span>" _
                    & oMail.ReplyAll.HTMLBody
                    .To = oMail.SenderEmailAddress
                    .cc = oMail.cc
                    .BCC = oMail.BCC
                    .Subject = oMail.Subject 'add here the code
                    .Display
                End With
                
                Exit For
                
            End If
        End If
    Next
    
    
End Sub

我猜这是 HTML 格式的问题,但我不是这方面的专家。预先感谢您。

我尝试创建一个新的电子邮件对象以包含我想要的所有详细信息,但签名仍然关闭。

vba outlook
1个回答
0
投票

您不能连接两个 HTML 字符串并期望得到一个有效的 HTML,必须将两者合并。读取现有的

HTMLBody
属性,找到
<body>
标签的位置,然后在该标签之后立即插入 HTML。

© www.soinside.com 2019 - 2024. All rights reserved.