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

Posted

技术标签:

【中文标题】Outlook 2010 规则:如果收件人超过 5 个,则移动邮件【英文标题】:Outlook 2010 Rule: Move message if greater than 5 recipients 【发布时间】:2013-01-22 07:33:14 【问题描述】:

我唯一一次收到超过 5 个收件人的电子邮件是在办公室八卦传开的时候。我很想制定一个规则/过滤器,将任何超过 5 个收件人的传入邮件移动到垃圾文件夹中。

Outlook 2010 可以做到吗?我在默认规则中找不到类似的东西,不确定你是否可以通过宏或其他东西来 VBA 规则。

感谢任何见解、帮助或资源。

【问题讨论】:

【参考方案1】:

此链接:How to replace text in the body of an incoming message with a hyperlink in Outlook 2010? 展示了如何在使用“消息到达后”条件时创建自定义操作。您需要更改 VBA 代码来询问您的邮件,看看它是否有 5 个以上的收件人,然后将邮件移动到您的垃圾文件夹。

可以通过查看MailItem.To 属性(分号分隔的字符串)找到收件人

如果邮件符合您的条件,那么您可以使用MailItem.Move 方法将邮件移动到您想要的文件夹。

此链接:MailItem Members (Outlook) 提供有关 MailItem 对象的更多信息。

【讨论】:

感谢您提供的资源。我会看看我能想出什么。【参考方案2】:

如果有人感兴趣,我使用 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 规则:如果收件人超过 5 个,则移动邮件的主要内容,如果未能解决你的问题,请参考以下文章

outlook邮箱怎么发送邮件 步骤详解轻松搞定

接受请求后 Outlook 日历从收件箱中消失

[Office一般性操作] 关闭Outlook重定向

将Outlook邮件从一个邮箱收件箱移动到同一邮箱中的不同文件夹

Outlook 2007 加载项:在我的表单区域 (WinForm) 重用内置的“收件人...”控件

如何从 Outlook 的“收件人”字段中提取电子邮件地址?