Outlook 2018 переміщення поштових елементів після відправки, windows it pro

Багато користувачів Outlook шукали спосіб переміщати повідомлення після відправки. Зазвичай при цьому застосовувалися складні процеси з тимчасової синхронізацією і схильні до помилок виклики, спрямовані до API-інтерфейсів Windows через сторонні бібліотеки DLL, такі як Outlook Redemption. Вивчивши проблему і провівши ряд експериментів, я знайшов два відповідні рішення на основі макрокоманд Visual Basic for Applications (VBA)

Надіслати заявку на отримання матеріалів

* Два способи перемістити поштовий елемент в призначену для користувача папку після відправки.

* Рішення на стороні клієнта, що не залежить від постачальника поштового сервера.

* Кращі способи поширення коду VBA серед користувачів.

За замовчуванням Microsoft Outlook зберігає копії відправлених елементів в папці Sent Items ( «Надіслані»). Але типовий підхід не завжди прийнятний в компанії, співробітники якої щодня відправляють сотні поштових повідомлень. Часто повідомлення електронної пошти впорядковують за темами або напрямками бізнесу. Цей метод відрізняється від сортування по бесідам, так як кожен напрямок бізнесу може містити кілька потоків бесід. Розподіляти по папках отримані повідомлення досить просто; інша справа - відправлені повідомлення. Основна складність полягає в тому, що незважаючи на можливість перемістити копію поштового елемента після відправки, в Outlook немає правила або параметра для переміщення самого відправленого елемента.

Обмеження підходу на основі правил

Як правило, якщо поведінка програми не відповідає моїм очікуванням, я намагаюся знайти програмне рішення. Але перш ніж впритул зайнятися кодом VBA, розглянемо параметри і правила електронної пошти Outlook. Тільки вичерпавши їх можливості, слід починати шукати більш складні рішення. Подивимося, що можна зробити за допомогою майстра Outlook Rules Wizard. Починаючи з пустого правила, можна вказати, чи слід застосувати правило до вхідних або вихідних повідомлень, як показано на екрані 1. Після того, як обрані критерії відбору повідомлень, можна вказати папку для копіювання цих повідомлень (екран 2).

Outlook 2010. переміщення поштових елементів після відправки, windows it pro

Екран 1. Використання майстра Rules Wizard для застосування правила до відправленим елементам

Екран 10. Перевірка правила відправки

Альтернативне рішення: використання події Items_ItemAdd папки Sent Items

Рішення oMsg_Send - вдалий вибір, якщо нові повідомлення вже обробляються і необхідно посилатися на Inspector нового елемента. Альтернативне рішення поміщає код в подія Items_ItemAdd () папки Sent Items. Оригінальний текст ThisOutlookSession для даного рішення показаний в лістингу 2.

Отримання доступу до події Items_ItemAdd () папки Sent Items

Змінений код правила

Встановлювати прапор DeleteAfterSubmit для створення копії поштового елемента більше не була необхідною. Однак необхідно перевірити тип Class елемента, так як параметр Item представляє собою універсальний об'єкт. Об'єкти, відмінні від повідомлень електронної пошти, такі як Meeting Item (елемент зборів), можна розміщувати в папці Sent Items. Я також зробив додатковий крок для збереження елемента у відповідному об'єкті MailItem, щоб активізувати функцію автозаповнення середовища розробки. Цей крок можна пропустити, якщо точно відомі властивості, до яких потрібно отримати доступ.

Подія oSentItems_ItemAdd в дії

Екран 12. Перевірка правила відправки для MailItems

Додавання інших типів елементів не складає труднощів; просто змініть інструкцію If в Select Case і вкажіть цільові типи в списку з роздільниками комами, як показано в лістингу 4.

Запуск макрокоманди Move Sent MailItems на вимогу

Встановлену макрокоманду Move Sent MailItems можна застосувати до раніше надісланих повідомлень. Для цього використовуйте діалогове вікно Macros (макроси), що відкривається натисканням кнопки Macros на стрічці. Єдина проблема в тому, що відкривається доступ тільки до загальнодоступних макрокомандам, до яких наша макрокоманда не відноситься. Навіть якщо можна побачити подію ItemAdd папки SentItems, обробляється тільки останнім відправлене повідомлення. Тому необхідно додати загальнодоступну підпрограму для обробки кожного елемента в папці SentItems, як показано у фрагменті вихідного тексту з міткою C лістингу 2. Потім можна відкрити діалогове вікно Macros, вибрати нову загальнодоступну підпрограму (якщо вона ще не обрана) і натиснути кнопку Run ( «Виконати »), щоб запустити її.

Простота і безпеку

Залишається лише знайти оптимальний спосіб поширення коду VBA. Зробити це можна по-різному, причому в одних випадках потрібне сприяння користувачів, а в інших можна діяти дистанційно:

* Використовувати команду File | Export (Файл | Експорт) в VBA-середовищі Outlook для експорту модулів як файлів. bas. cls або. frm;

* Копіювати файл VbaProject.otm з комп'ютера, на якому були підготовлені макрокоманди, на комп'ютери інших користувачів, замінивши існуючий файл VbaProject.otm;

* Використовувати майстер Office Profile Wizard (Proflwiz.exe) для поширення проекту VBA.

Додаткові матеріали

«Microsoft Outlook Programming: Jumpstart for Administrators, Developers, and Power Users» Сью Мошер