PDA

Показать полную графическую версию : VisualBasic скрипт для сортировки писем в Outlook


DJ@XON
24-07-2017, 15:10
Уважаемые пользователи форума!
Помогите написать VBA скрипт для Outlook, который анализирует входящие письма и перемещает их в определенную папку по нахождению двух словосочетаний в тексте письма:
if ("текст 1" есть в письме) and ("текст 2" есть в письме) to {перемещаем письмо в "папку"} // не пугайтесь, это просто словесный алгоритм, чтобы было яснее, что мне требуется.

Почему я не использую стандартные правила Outlook?
Потому что эти правила не срабатывают. Дело в том, что один из параметров "текст 1" - это обязательно гиперссылка. И в паре с другим, обычным текстом, стандартное правило почему то не хочет срабатывать.

В программировании на VisualBasic не силен (а если быть точнее, то совсем никак), поэтому прошу помощи у вас.
Нашел, тестовый скрипт в сети, который выводит на экран тему входящего сообщения, вставил в ThisOutlookSession, вроде работает:

Sub CustomMailMessageRule(Item As Outlook.MailItem)
MsgBox "Mail message arrived: " & Item.Subject
End Sub

дальше никак. В сети ничего дельного не могу найти.

Подскажите пожалуйста или дайте ссылки на нужные материалы, примеры для самостоятельного изучения.
Буду очень благодарен! Заранее спасибо!

nexochyka
04-08-2017, 00:13
https://msdn.microsoft.com/VBA/Outlook-VBA/articles/mailitem-move-method-outlook

Это пример кода с перебором непрочитанных писем
ps есть нюанс если непрочитанных больше 150 оутглюк прервет обработку.



Private Sub Application_NewMail()
'Мониторим папку входящие, и обрабатываем непрочитанные письма

Dim objMItem As MailItem
Dim objItem As Object
Dim objMAPIFolder As Outlook.MAPIFolder
Set objMAPIFolder = Outlook.Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox) 'Папка: Входящие

On Error Resume Next

' ==================
'Проверка на критерии [Непрочтитанное]
For Each objItem In objMAPIFolder.Items.Restrict("[Unread]=TRUE") 'objMItem вместо objItem

'Проверка письма на соответствие критериям
With objItem

' ===============
'Обработка темы письма по критериям
Select Case .Subject
' В вашем случае это Select Case .Body
' -------------------------------------------------------------------------------------------------------
Case "Пример 1"
.Move (Ваша папка)
' -------------------------------------------------------------------------------------------------------
Case "Пример 2"
.UnRead = False 'пометить прочтенным
.Delete 'перемесить в папку удаленные
' -------------------------------------------------------------------------------------------------------
Case Else
' Здесь можно вставить дополнительные обработки
' -------------------------------------------------------------------------------------------------------

End Select
End With

Next
' ==============
Set objMAPIFolder = Nothing
End Sub


это урезанный фрагмент рабочего кода, возможны небольшие ошибки




© OSzone.net 2001-2012