vba - 将文本添加到电子邮件线程
问题描述
我在 Outlook 中搜索我的已发送邮件并将最后一封电子邮件打开到指定的电子邮件地址(这部分已完成)。
我想在电子邮件链中添加文本,同时保持以前的消息完好无损。
下面的代码创建了一个“空白板”,因此所有以前的电子邮件通信都丢失了。
我需要做什么才能将文本添加到电子邮件的正文?
FunctionComposeResponse(searchEmail As String, emailBody As String)
Dim currDateTime As Date: currDateTime = Now()
Dim tenDayPrior As Date: tenDayPrior = DateValue(CStr(Now())) - 10 & " 07:00:00 AM"
Dim olApp As Outlook.Application
Dim olNS As NameSpace
Dim Fldr As Folder
Dim olReply As Outlook.MailItem
Dim msg As Object
Set olApp = New Outlook.Application
Set olNS = olApp.GetNamespace("MAPI")
Set Fldr = olNS.GetDefaultFolder(olFolderSentMail)
For Each msg In Fldr.Items
If TypeName(msg) = "MailItem" Then
For Each recipient in msg.recipients
If recip.Address = searchEmail Then
If msg.SentOn >= tenDayPrior And msg.SentOn <= currDateTime Then
Set olReply = msg.ReplyAll
With olReply
.BodyFormat = olFormatHTML
.HTMLBody = emailBody
.Save
.Close olSave
End With
End If
End If
Next recip
End If
Next msg
End Function
解决方案
通过设置
.HTMLBody = emailBody
你会覆盖之前的所有内容。
您需要将文本插入现有的.HTMLBody
.
对于我想保留默认 HTML 签名的新邮件项,我使用以下内容 - 检查您现有的内容.HTMLBody
以了解这是否也适用于回复(如果不是:适应)。
' emailBody is plain text -> encode as HTML
emailBody = HtmlEncode(emailBody)
' Outlook-HTML: mail text begins with this line:
' <p class=MsoNormal><o:p> </o:p></p>
' Insert my text instead of the first
oItem.HtmlBody = Replace(oItem.HtmlBody, " ", emailBody, Count:=1)
推荐阅读
- ruby-on-rails - 从 rails 渲染过程为 Vue 模型设置值
- sql - Change number automatically with function
- java - JaCoCo(离线仪器)在
乐器 分析整个 pom.xml。但我只需要测试部分 - android - Layouts sometimes overlap in android fragment
- mysql - Determine customers that have spent money at the company for the first time, each month (mySQL)
- java - 查找数组 java 的最佳系数变量
- ionic-framework - 离子中的货币掩码
- javascript - How to take parameters from a URL
- ssis - 渐变维度向导历史属性选项 无开始日期可供选择
- javascript - 用 for 循环表示 Log(n) BigO 表示法的最简单代码是什么?