Я написал сценарий 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.