Vba 向电子邮件线程添加文本
我在Outlook中搜索已发送的邮件,并将最后一封电子邮件打开到指定的电子邮件地址(此部分已完成) 我想向电子邮件链添加文本,同时保持以前的邮件完整 下面的代码创建了一个“空白板”,因此以前的所有电子邮件通信都将丢失 我需要做什么才能将文本添加到电子邮件正文中Vba 向电子邮件线程添加文本,vba,ms-access,outlook,Vba,Ms Access,Outlook,我在Outlook中搜索已发送的邮件,并将最后一封电子邮件打开到指定的电子邮件地址(此部分已完成) 我想向电子邮件链添加文本,同时保持以前的邮件完整 下面的代码创建了一个“空白板”,因此以前的所有电子邮件通信都将丢失 我需要做什么才能将文本添加到电子邮件正文中 FunctionComposeResponse(searchEmail As String, emailBody As String) Dim currDateTime As Date: currDateTime = Now() Dim
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
FunctionComposer响应(搜索电子邮件作为字符串,emailBody作为字符串)
Dim currDateTime作为日期:currDateTime=Now()
Dim TendayPrevior作为日期:TendayPrevior=DateValue(CStr(Now())-10和“07:00:00 AM”
Dim olApp作为Outlook.Application
Dim-olNS作为名称空间
Dim Fldr As文件夹
请以Outlook.MailItem的形式答复
将msg作为对象
Set olApp=newoutlook.Application
Set olNS=olApp.GetNamespace(“MAPI”)
设置Fldr=olNS.GetDefaultFolder(olFolderSentMail)
对于Fldr.项目中的每个味精
如果TypeName(msg)=“MailItem”,则
对于msg.recipients中的每个收件人
如果recip.Address=搜索电子邮件,则
如果通过设置msg.SentOn>=tenDayPrior和msg.SentOn
.HTMLBody = emailBody
你覆盖了以前的一切
您需要将文本插入现有的.HTMLBody
对于新邮件,我希望保留默认的HTML签名,我使用以下命令-检查您现有的.HTMLBody
,以确定这是否也适用于回复(如果不适用:adapt)
电子邮件正文是纯文本->编码为HTML
emailBody=HtmlEncode(emailBody)
'Outlook HTML:邮件文本以此行开头:
“
'插入我的文本而不是第一个文本
oItem.HtmlBody=Replace(oItem.HtmlBody,“”,emailBody,计数:=1)
' 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)