Outlook 2007: 创建一个消息规则来检测自动转发的邮件并进行处理

5
我正在寻找与自动转发邮件创建规则相反的东西。我想创建一个规则来处理已接收到的自动转发电子邮件,但不包括任何被同一人手动转发或回复的邮件。
例如,Jim向我转发所有主题中带有“blah”的电子邮件,而我想将这些自动转发电子邮件移动到我的“Jim的自动转发”文件夹中,但如果他手动转发了一条包含“blah”的消息但添加了自己的评论,则我希望它留在我的收件箱中。
Outlook似乎知道它是自动转发的,因为当您查看电子邮件时,它会显示出这样的信息。在“发件人”部分的上方但在功能区下方,它会显示类似于:
"This message was AutoForwarded."

然而,我没有找到任何过滤规则创建选项。
3个回答

2
我们的Exchange服务器为自动转发和自动回复邮件添加以下标头:
X-MS-Exchange-Inbox-Rules-Loop: abc@company.com

其中abc@company.com是自动转发邮件的人的电子邮件地址。

我使用MS Outlook 2010,设置了一个规则 ->

来自:abc@company.com 并且在邮件头中包含“X-MS-Exchange-Inbox-Rules-Loop: abc.xyz@company.com”或“X-MS-Exchange-Inbox-Rules-Loop: abc.XYZ@company.com” 将其移动到“xyz”文件夹中

我已经在消息头中检查了abc.xyz@company.comabc.XYZ@company.com,因为在一些自动转发/回复电子邮件的标题中,发件人的姓氏是大写的。

注意:如前所述,此规则适用于该人员的所有自动转发和自动回复(例如,离开办公室/度假自动回复)。手动转发/回复的电子邮件不会被过滤。


在我的Outlook 2016中可以工作。 - Simon Pickup
这应该是被接受的答案。X-MS-Exchange-Inbox-Rules-Loop就能解决问题。 - thecoolmacdude

2
我们的交换服务器(可能是Outlook?)在自动转发时添加以下标头:
Auto-Submitted: auto-generated
X-MS-Exchange-Generated-Message-Source: Mailbox Rules Agent

(通过打开邮件并查看消息“属性”来查看标头可见)这些似乎是Outlook用于检测消息是否被自动转发的内容(或至少与之相符)

而Outlook/Exchange 2013具有“在消息标头中使用指定单词”的筛选选项

我已经使用了类似以下规则,成功将只有“blah”主题的消息从“Jim”自动转发到特定文件夹:

Apply this rule after the message arrives
from 'jim@example.com'
 and with 'blah' or 'blurg' in the subject
 and with 'auto-generated' or 'Auto-Submitted' in the message heade
move it to the 'Jims auto-forwards' folder

这似乎是为了防止任何手动转发的内容被同一规则处理而出现的。


我发现这个在我们的交换服务器上可靠地工作。 - c31983

1

我认为规则不能做到这一点。

尝试一些VBA。未经测试

编辑2013年02月26日

将代码放入ThisOutlookSession http://www.slipstick.com/outlook-developer/how-to-use-outlooks-vba-editor/

以下是一些参考资料,以便在需要时进行调试。

NewMailEx:http://msdn.microsoft.com/en-us/library/office/bb147646(v=office.12).aspx

AutoForwarded属性:http://msdn.microsoft.com/en-us/library/office/ff867162.aspx

    Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
    Dim varEntryIDs
    Dim objItem
    Dim i As Integer

    Dim myOlApp As Outlook.Application
    Dim myNameSpace As Outlook.NameSpace
    Dim myInbox As Outlook.MAPIFolder
    Dim myDestFolder As Outlook.MAPIFolder

    varEntryIDs = Split(EntryIDCollection, ",")
    For i = 0 To UBound(varEntryIDs)
        Set objItem = Application.Session.GetItemFromID(varEntryIDs(i))

        'Debug.Print "NewMailEx " & objItem.Subject

        If objItem.SenderName = "Jim Smith" Then

            If objItem.AutoForwarded then

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

              ' Assumes destination folder is directly under the Inbox
              Set myDestFolder = myInbox.Folders("Jim AutoForwarded")
              objItem.Move myDestFolder

            End If
        End If

   Next
   Set objItem = Nothing
   Set myDestFolder = Nothing
   Set myInbox = Nothing
   Set myNameSpace = Nothing
   End Sub

我该如何将它添加到我的Outlook中,以便在收到电子邮件时自动运行? - dstronczak
@dstronczak,我在描述中添加了代码放置的链接。 - niton
这行代码出现了某种错误:If objItem.SenderName = "MyCollegueName" Then - dstronczak
@dstronczak 从Jim中选择一个项目。在即时窗格中输入?ActiveExplorer.Selection.Item(1).SenderName。 - niton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接