Единственный раз, когда я получаю электронные письма с 5+ получателями, это когда в офисе ходят слухи. Я хотел бы создать правило / фильтр для перемещения любого входящего сообщения с более чем 5 получателями в папку нежелательной почты.

Это возможно с Outlook 2010? Я не мог найти ничего подобного в правилах по умолчанию, не был уверен, сможете ли вы VB правило. Любое понимание приветствуется.

1 ответ1

0

Я написал сценарий VBA, используя ресурсы из StackOverflow и SuperUser, если кому-то интересно.

Этот сценарий принимает все входящие электронные письма и подсчитывает получателей в поле « 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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .