例如,Jim向我转发所有主题中带有“blah”的电子邮件,而我想将这些自动转发电子邮件移动到我的“Jim的自动转发”文件夹中,但如果他手动转发了一条包含“blah”的消息但添加了自己的评论,则我希望它留在我的收件箱中。
Outlook似乎知道它是自动转发的,因为当您查看电子邮件时,它会显示出这样的信息。在“发件人”部分的上方但在功能区下方,它会显示类似于:
"This message was AutoForwarded."
然而,我没有找到任何过滤规则创建选项。
"This message was AutoForwarded."
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.com和abc.XYZ@company.com,因为在一些自动转发/回复电子邮件的标题中,发件人的姓氏是大写的。
注意:如前所述,此规则适用于该人员的所有自动转发和自动回复(例如,离开办公室/度假自动回复)。手动转发/回复的电子邮件不会被过滤。
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
这似乎是为了防止任何手动转发的内容被同一规则处理而出现的。
我认为规则不能做到这一点。
尝试一些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
If objItem.SenderName = "MyCollegueName" Then
- dstronczak