Outlook 2010 规则:如果收件人超过 5 个,则移动邮件

Outlook 2010 规则:如果收件人超过 5 个,则移动邮件

只有当办公室八卦四起时,我才会收到收件人超过 5 人的电子邮件。我很想制定一条规则/过滤器,将所有收件人超过 5 人的来信移至垃圾邮件文件夹。

Outlook 2010 可以做到这一点吗?我在默认规则中找不到类似的东西,不确定您是否可以 VB 规则。任何见解都值得赞赏。

答案1

如果有人感兴趣的话,我使用来自 StackOverflow 和 SuperUser 的资源编写了 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 语法。

相关内容