5

我正在寻找与创建自动转发电子邮件的规则相反的东西。我想创建一个规则来处理收到的自动转发的电子邮件,但不是任何由同一个人手动转发或回复的邮件。

例如,Jim 将所有主题中带有“blah”的电子邮件转发给我,我想将这些自动转发移动到我的“Jim's auto-forwards”文件夹,但如果他手动向我转发一条消息,上面写着“blah”但他添加了自己的评论,我希望它留在我的收件箱中。

Outlook 似乎知道它是自动转发的,因为它在您查看电子邮件时显示为这样。就在“发件人”部分的上方,但就在功能区的下方,它说的是:

"This message was AutoForwarded."

但是我还没有找到任何选项来创建过滤这些的规则。

4

3 回答 3

2

我们的交换服务器(可能是 Outlook?)在自动转发时添加了以下标头:

Auto-Submitted: auto-generated
X-MS-Exchange-Generated-Message-Source: Mailbox Rules Agent

(通过打开电子邮件并查看消息“属性”以查看标题可以看到)这些似乎是 Outlook 用来检测邮件是否被自动转发(或至少一致)的内容

并且 Outlook/Exchange 2013 具有过滤选项“在邮件标题中包含指定的单词”

我使用了类似于以下内容的规则,成功地将仅从“Jim”自动转发的“blah”主题消息移动到特定文件夹:

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

这似乎可以防止他手动转发的任何内容被相同的规则处理。

于 2015-09-07T03:36:42.773 回答
2

我们的 Exchange 服务器为自动转发和自动回复添加了以下标头

X-MS-Exchange-Inbox-Rules-Loop: abc@company.com

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

我使用已设置规则的 MS Outlook 2010 ->

From: abc@company.com and with 'X-MS-Exchange-Inbox-Rules-Loop: abc.xyz@company.com' or 'X-MS-Exchange-Inbox-Rules-Loop: abc.XYZ@company.com' in the message header move it to the 'xyz' folder

我已经检查了邮件标题中的abc.xyz@company.comabc.XYZ@company.com,因为在某些自动 Fwd/Re 电子邮件标题中,发件人的姓氏是大写的。

注意:如前所述,此规则适用于该人的所有自动转发和自动回复(例如外出/休假自动回复)。不过滤手动转发/RE 电子邮件

于 2017-06-24T02:25:13.073 回答
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

自动转发属性: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
于 2013-02-23T18:34:20.933 回答