Як відфільтрувати електронну пошту Outlook за допомогою правила зі сценарієм VBA?


15

Деякі речі неможливі, використовуючи правила електронної пошти за замовчуванням, як-от пошук предметів або тел повідомлень за допомогою символів. Ви можете зробити кілька слів, але це не те саме, якщо вам потрібні слова один символ один від одного. Як я можу написати власний код Visual Basic для програм для фільтрації електронної пошти Outlook?

Відповіді:


13

Я виглядав високо і низько для всіх цих частин, необхідних для того, щоб цей простий фільтр стався. Фільтри протоколу Unix настільки прості у використанні для порівняння. Усі майстри Microsoft Outlook заважають простому фільтру за допомогою макетів. Хоча для багатьох умов фільтра електронної пошти Microsoft за замовчуванням надає Microsoft корисні, ніщо не може перемогти гнучкість та налаштування запущеного коду.

  1. Напишіть свій код.

Alt-F11 відкриває редактор коду VBA. Двічі клацніть на ThisOutlookSession. Напишіть свій код. У моєму випадку це використання регулярного вираження в рядку теми та переміщення його не до DefaultFolder, а до мого власного PST у підпапці.

Sub filter(Item As Outlook.MailItem)
    Dim ns As Outlook.NameSpace
    Dim MailDest As Outlook.Folder
    Set ns = Application.GetNamespace("MAPI")
    Set Reg1 = CreateObject("VBScript.RegExp")
    Reg1.Global = True
    Reg1.Pattern = "(.*Abc.20.*)"
    If Reg1.Test(Item.Subject) Then
        Set MailDest = ns.Folders("Personal Folders").Folders("one").Folders("a")
        Item.Move MailDest
    End If
End Sub
  1. Запустіть код для кожного вхідного електронного листа за допомогою правила.

Під правилами виберіть "Керувати правилами та сповіщеннями ...". Нове правило виглядатиме так

Apply this rule after the message arrives run Project1.ThisOutlookSession.filter

Щоб отримати це, для кроку 1: Виберіть умову: просто натисніть кнопку Далі. Підтвердіть, що воно стосується всіх повідомлень, натиснувши ОК. Для вибору дій (ів) встановіть прапорець "запустити сценарій", після чого натисніть, щоб вибрати сценарій фільтра, і виберіть Далі або Готово. Для вибору винятків виберіть Далі або Готово. Назвіть це добре ім’я, як vba-filter і поставте прапорець Увімкнути це правило. натисніть кнопку Готово. Оскільки він справляється з локальною папкою, натисніть кнопку ОК, коли вона просить підтвердити це правило не працюватиме електронною поштою, яку ви перевіряєте в Інтернеті чи на іншому пристрої. Клацніть OK у діалоговому вікні Правила та сповіщення.

  1. Outlook не подобається, коли макроси не підписуються. Щоб самостійно підписати макроси, створіть сертифікат і використовуйте його .

Я читав про безліч інших часткових рішень, таких як макроси та створення визначених користувачем стовпців. Це дозволяє сортувати інтерфейс або фільтрувати перегляд, але це редагуватиме всі повідомлення у міру їх надходження, а це не те, що я хотів робити.
Грант Боуман

1
Мій клієнт прогнозу непослідовно заборонить правило запускати vbscript vba-filter при запуску програми. Це спричинило проблеми. Існує також обмеження символів vbscript, яке потрібно додати до кожного правила. Щоб вони працювали послідовно, хоча з меншою гнучкістю, я переписував фільтри за допомогою стандартних фільтрів Outlook, щоб вони працювали весь час.
Грант Боуман

3
Цей варіант запуску сценарію відсутній. Тут можна знайти посилання: slipstick.com/outlook/rules/outlook-2016-run-a-script-rules
Jayan

Код, описаний вище, для мене не працює. Я поміщаю Abc.20 у тематичний файл, але повідомлення ніколи не виходять з папки "Вхідні".
Tensigh

1
Використовуючи вікно налагодження, мені вдалося змусити регулярний регекс працювати. Тепер справа лише в тому, щоб перейти до потрібних папок. Я думаю, я можу це зрозуміти. Спасибі за вашу допомогу.
Tensigh
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.