我收到5个以上收件人的电子邮件的唯一时间是办公室八卦一下。我希望制作一个规则/过滤器,将超过5个收件人的任何传入邮件移动到垃圾文件夹中。
Outlook 2010可以实现吗?我在默认规则中找不到类似的东西,不确定你是否可以通过Macro或其他东西VBA规则。
感谢任何见解,帮助或资源。
答案 0 :(得分:3)
此链接:How to replace text in the body of an incoming message with a hyperlink in Outlook 2010?显示了在使用“消息到达后”条件时如何创建自定义操作。您需要更改VBA代码以询问您的mailitem以查看它是否有5个以上的收件人,然后将mailitem移动到您的垃圾文件夹。
通过查看MailItem.To
属性(以分号分隔的字符串)可以找到收件人
如果邮件符合您的条件,则您可以使用MailItem.Move
方法将邮件移至所需的文件夹。
此链接:MailItem Members (Outlook)提供有关MailItem
对象的更多信息。
答案 1 :(得分:3)
如果有兴趣的话,我使用DeanOC提供的资源编写了VBA脚本。
此脚本接收所有传入的电子邮件并计算To:
字段中的收件人,如果收件人数大于5,则将其标记为已读,并且移动到Gossip
文件夹。
还有一个次要条件来检查主题是否包含CVS
(我们从包含10个收件人的并发版本系统获取更新)并移动到相应的文件夹。
Sub moveOfficeGossip(item As Outlook.MailItem)
Dim strNames As String, i As Integer, j As Integer, cvs As String
Dim olApp As New Outlook.Application
Dim olNameSpace As Outlook.NameSpace
Dim olDestFolder As Outlook.MAPIFolder
j = 1
cvs = "CVS"
strNames = item.To
Set olNameSpace = olApp.GetNamespace("MAPI")
For i = 1 To Len(strNames)
If Mid(strNames, i, 1) = ";" Then j = j + 1
Next i
If (j >= 5) Then
If InStr(UCase(item.subject), cvs) Then
Set olDestFolder = olNameSpace.Folders("Personal Folders").Folders("Filtered").Folders("CVS")
item.Move olDestFolder
Else
Set olDestFolder = olNameSpace.Folders("Personal Folders").Folders("Filtered").Folders("Gossip")
item.UnRead = False
item.Move olDestFolder
End If
End If
End Sub
我很抱歉,如果这不是最正式的格式,我知道它可以更好地组织,但这是我第一次尝试使用任何Visual Basic语法。