我有以下代码。我的目标是基本上在 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 格式的问题,但我不是这方面的专家。预先感谢您。
我尝试创建一个新的电子邮件对象以包含我想要的所有详细信息,但签名仍然关闭。
您不能连接两个 HTML 字符串并期望得到一个有效的 HTML,必须将两者合并。读取现有的
HTMLBody
属性,找到 <body>
标签的位置,然后在该标签之后立即插入 HTML。