转发邮件并向正文添加内容(Outlook 2007,VBA)

时间:2016-05-25 14:03:21

标签: vba email outlook ms-office forward

任何人都可以帮我编辑VBA代码以解决以下问题: 我想将特定主题的电子邮件转发到特定的电子邮件。在这个过程中,我想向转发的正文添加一个文本。 感谢您的帮助!

修改。

我现在有代码,但它没有正常工作。它发送最后一封点击的电子邮件:(。

Sub Test(oMail As MailItem)
Dim MyItem As Outlook.MailItem
Dim obj_curitem As MailItem
Dim obj_newitem
Dim obj_Selection
Dim obj_curfolder
Dim obj_msgitems
Dim Forward As Object

If Err.Number = 0 Then
    Set obj_Selection = Outlook.ActiveExplorer.Selection
        If obj_Selection.Count > 0 Then

        For Each obj_curitem In obj_Selection
            strID = obj_curitem.EntryID
            Set olNS = Application.GetNamespace("MAPI")

            'Object auf einem neuen Item erstellen
            Set obj_newitem = obj_curitem.Forward
            With obj_curitem.Forward
                .Forward = True
                .SentOnBehalfOfName = "###"  'Deine Mailadresse
                .Subject = "WG" & .Subject                      'Betreff
                .To = "###"                    'Empfängermail
                .BODY = "geprüft" & .BODY                       'E-Mail Inhalt
                .Send

            End With
        Next
    End If
End If
End Sub

1 个答案:

答案 0 :(得分:0)

通常,您需要处理Application类的NewMailEx事件,您可以在其中查看Subject属性并决定是否转发电子邮件。 Application类的Forward方法允许您这样做 - 它为项执行Forward操作并将结果副本作为MailItem对象返回。

NewMailEx事件会针对Microsoft Outlook处理的每个已接收项触发一次。该项可以是几种不同项类型之一,例如,MailItem,MeetingItem或SharingItem。 EntryIDsCollection字符串包含与该项对应的条目ID。您可以使用EntryIDCollection数组中返回的条目ID来调用NameSpace.GetItemFromID方法并处理该项。

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

  1. Body
  2. HTMLBody
  3. Word编辑器。 Inspector类的WordEditor属性返回表示邮件正文的Word文档实例。因此,您可以使用Word对象模型对邮件正文执行任何操作
  4. 有关详细信息,请参阅Chapter 17: Working with Item Bodies