Vba不会转发对话中的最新消息

时间:2015-10-21 20:43:11

标签: vba outlook-vba

Set myNameSpace = myOlApp.GetNamespace("MAPI")
Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
Set myitems = myInbox.Items

For Each myitem In myitems
    If myitem.Class = olMail Then
        If InStr(1, myitem.Subject, "Hi") > 0 Then
            If myitem.Sender.GetExchangeUser.PrimarySmtpAddress = "xyz@abc.com" Then
                With myitem.Forward
                    .Recipients.Add "pqr@abc.com"
                    .CC = "xyz@abc.com"
                    .Body = "Hey,there"
                    .Send
                End With
            End if
        End if
    End if
Next myitem

基本上,如果我从 xyz 获得" 最后一封主题电子邮件,那么我想转发 pqr CC xyz 。 Everthing工作正常,但转发的消息不是原始消息,但它只是组成一个新的电子邮件。除了从 xyz 收到的内容之外,我总是希望在转发电子邮件时添加内容。任何人都可以帮忙。感谢。

编辑: - 如果我在使用myitem.Forward 之后立即显示一个显示命令,它会显示整个帖子,但是一旦我添加了收件人和正文,它就会消失并转入新的电子邮件。另外我认为它可以将 .body 解释为整个新体,我应该找到一些可以添加到现有体内的东西。

1 个答案:

答案 0 :(得分:2)

如果您需要保留现有消息,则应在现有属性值之前插入文本(如果是纯文本电子邮件)。

  .Body = "Hey,there" + .Body

或者将HTML标记注入<body>元素以保持HTML标记格式正确。

Outlook对象模型提供了三种使用项主体的主要方法:

  1. Body - 表示Outlook项目的明文正文的字符串。
  2. HTMLBody - 表示指定项目的HTML正文的字符串。
  3. Word editor - 正在显示的消息的Microsoft Word文档对象模型。 Inspector类的WordEditor属性从Word对象模型返回Document类的实例,您可以使用它来设置消息体。
  4. 您可以在Chapter 17: Working with Item Bodies中详细了解所有这些方式。我们由您决定选择自定义邮件正文。