Приветствую Вас ГостьПонедельник, 29.04.2024, 13:10

В помощь админу


Каталог статей

Главная » Статьи » Windows » Скрипты

Автосохранение вложений в Outlook

Когда Вы работаете с электронной почтой очень часто приходится сохранять вложения из писем, полученных от определенных адресатов на определенные темы. При получении такого письма мы открываем его и по очереди или сразу все вложения сохраняем в нужную папку (например, секретарь может таким образом обрабатывать полученные сообщения).

Эти операции можно автоматизировать, чтобы при получении письма, отвечающего заданным условиям, сохранение всех вложений на диск в нужную папку происходило без участия пользователя. Реализовать это можно при помощи связки "Правило + Макрос".

1. Создаем макрос

Создадим макрос, который будет сохранять вложения в указанную папку. Для этого вначале необходимо отобразить на ленте вкладку "Разработчик", если она у Вас ещё не отображена. Файл - Параметры - Настройка ленты - включаем галочку напротив вкладки.

Вкладка "Разработчик" (включение)

Далее необходимо открыть визуальный редактор Visual Basic. На ленте находим только что добавленную вкладку и жмем команду "Visual Basic"(или используем сочетание горячих клавиш Alt+F11).

Команда на ленте

Откроется окно редактора VBA (Visual Basic Application). Макросы хранятся в модулях, поэтому перед созданием макроса необходимо создать новый модуль. Для этого в открывшемся окне кликните правой кнопкой мышкой в левой части (в разделе "Проект1" или "Project1"), выберите команду Insert - Module. Если Вы не видите часть редактора, содержащую "Проект1" - нажмите Ctrl+R.

Создание модуля

После этих манипуляций создастся папка с модулями, а в ней появится Module1. Кликните по нему дважды левой кнопкой мыши и справа откроется большое окно для ввода кода данного модуля.

Окно ввода кода модуля.

Для того, чтобы Вам не пришлось набирать код вручную, можно его просто скопировать (код ниже):

Public Sub saveAtt_Ivanov(itm As Outlook.MailItem)
    On Error GoTo ErrorHandler
    Dim objAtt As Outlook.Attachment 'переменная для работы с вложениями
    Dim saveFolder As String 'переменная для пути к папке сохранения
    Dim sDateMail As String 'переманная для даты письма
    Dim FullPath As String
    Dim UserName As String
    UserName = Environ("USERNAME") ' Имя залогиненного пользователя
    'сохраняем в правильном формате время создания сообщения
    sDateMail = Format(itm.CreationTime, "hh-mm-ss_dd.mm.yyyy")
    'задаем путь к папке сохранения
    saveFolder = "D:\" & UserName & "\Documents\Поставщики\ИП Иванов А.В"
    'перебираем все вложения в письме
    For Each objAtt In itm.Attachments
       'сохраняем вложение в папку под именем: дата письма + название файла вложения
       'FullPath = saveFolder & "\" & sDateMail & "_" & objAtt.FileName
       FullPath = saveFolder & "\" & objAtt.DisplayName
       objAtt.SaveAsFile FullPath
       MsgBox ("Успешно сохранено вложение:" & vbCrLf & FullPath)
       'очищаем переменную с вложением
       Set objAtt = Nothing
    Next objAtt
ProgramExit:
    Exit Sub
ErrorHandler:
    MsgBox (Err.Number & vbCrLf & Err.Description & vbCrLf & FullPath)
    Resume ProgramExit
End Sub

Этот код в момент срабатывания на каком то сообщении будет перебирать все его вложения и сохранять их в указанную папку (строка saveFolder) с именем, которое будет состоять из даты и времени создания письма и названия вложения. После вставки кода нажмите Ctrl+S (или иконку дискеты в левом верхнем углу).

 

Код в окне модуля в VBE

Создаем правило

Перейдем к созданию правила, которое будет запускать код на определенные письма. В нашем примере это будет правило, которое сработает при получении писем с определенной темой.

Главная - Правила - Управление правилами и оповещениями

 

Команда на ленте

В появившемся окне нажмите кнопку "Новое...", чтобы перейти к созданию нового правила с нуля.

 

Создание нового правила

В появившемся окне нажмите "Далее". На первом шаге мастера правил укажите, для каких писем правило должно срабатывать. В нашем примере это будут письма, в теме которых содержится фраза "Ежедневная рассылка отчета". Поставьте галочку напротив пункта "Содержащие <текст> в поле тема", а затем в нижней части окна кликните на гиперссылке со словом "текст" и введите искомую фразу. В списке условий отбора также можете установить галочку на пункт "Содержащие вложения", так как письма без вложений нас не интересуют (сохранять в них нечего).

 

Шаг 1

Нажмите кнопку "Далее". На следующем шаге нужно снять все лишние галочки, а поставить одну - напротив пункта "Запустить скрипт", а в нижней части экрана, нажав на гиперссылку, выбрать наш макрос.

Если у вас нет пункта "Запустить скрипт", то возможно дело в обновлении Office (актуально для Office 2013 и Office 2016). Чтобы исправить это, нужно в реестре в ветке HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Security (для 2016) или в ветке HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Security (для 2013) создать строковый параметр DWORD с именем EnableUnsafeClientMailRules и значением, равным единице. После перезапуска Outlook пункт должен появиться в списке.

 

Шаг 2

Нажмите "Далее", укажите исключения, если нужно, затем еще раз "Далее", укажите имя правила, поставьте галочку напротив "Включить правило" и жмите "Готово"

 

Шаг 3

Осталось только разрешить выполнение макросов, чтобы Outlook сумел запустить его, когда сработает правило. Идем на вкладку "Разработчик" - "Безопасность макросов" и на вкладке "Параметры макросов" задаём нужную настройку.

 

Безопасность макросов

Готово!

Теперь при получении письма с темой, содержащей фразу "Ежедневная рассылка отчета", программа сама сохранит все вложения из этого письма на рабочий стол (Вы, разумеется, можете указать любую другую папку).

Обратите внимание, что скрипт сработает только при запущенном Outlook!

Категория: Скрипты | Добавил: isz (29.11.2019)
Просмотров: 969 | Теги: Автосохранение, Outlook | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Категории раздела
Active Directory [12]
DHCP [1]
Windows [13]
Wins [1]
Групповая политика [3]
Программы [2]
Резервное копирование [6]
Сеть [5]
Скрипты [31]
Терминальный сервер [7]
Почта [7]
Реестр [2]
Реестр Windows
Командная строка [7]
CMD: Командная строка Windows
Поиск
Форма входа
Наш опрос
Оцените мой сайт
Всего ответов: 147
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика