Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 向电子邮件线程添加文本_Vba_Ms Access_Outlook - Fatal编程技术网

Vba 向电子邮件线程添加文本

Vba 向电子邮件线程添加文本,vba,ms-access,outlook,Vba,Ms Access,Outlook,我在Outlook中搜索已发送的邮件,并将最后一封电子邮件打开到指定的电子邮件地址(此部分已完成) 我想向电子邮件链添加文本,同时保持以前的邮件完整 下面的代码创建了一个“空白板”,因此以前的所有电子邮件通信都将丢失 我需要做什么才能将文本添加到电子邮件正文中 FunctionComposeResponse(searchEmail As String, emailBody As String) Dim currDateTime As Date: currDateTime = Now() Dim

我在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
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>&nbsp;</o:p></p>
' Insert my text instead of the first &nbsp;
oItem.HtmlBody = Replace(oItem.HtmlBody, "&nbsp;", emailBody, Count:=1)