我唯一一次收到超过 5 个收件人的电子邮件是在办公室八卦传开的时候。我很想制定一个规则/过滤器,将任何超过 5 个收件人的传入邮件移动到垃圾文件夹中。
Outlook 2010 可以做到这一点吗?我在默认规则中找不到类似的东西,不确定你是否可以通过宏或其他东西来 VBA 规则。
感谢任何见解、帮助或资源。
我唯一一次收到超过 5 个收件人的电子邮件是在办公室八卦传开的时候。我很想制定一个规则/过滤器,将任何超过 5 个收件人的传入邮件移动到垃圾文件夹中。
Outlook 2010 可以做到这一点吗?我在默认规则中找不到类似的东西,不确定你是否可以通过宏或其他东西来 VBA 规则。
感谢任何见解、帮助或资源。
如果有人感兴趣,我使用 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 语法。
此链接:如何在 Outlook 2010 中用超链接替换传入邮件正文中的文本?展示了如何在使用“消息到达后”条件时创建自定义操作。您需要更改 VBA 代码来询问您的邮件项目以查看它是否有 5 个以上的收件人,然后将邮件项目移动到您的垃圾文件夹。
可以通过查看MailItem.To
属性找到收件人(分号分隔的字符串)
如果邮件符合您的标准,那么您可以使用该MailItem.Move
方法将邮件移动到您想要的文件夹。
此链接:MailItem Members (Outlook)提供有关该MailItem
对象的更多信息。