Главная

Saturday, 17 October 2020

Автоматическая выгрузка вложения из письма.

Всем привет.

Можно ли в Оutlook 2016 настроить автоматическое сохранение вложения входящего сообщения на диск?

Мне по воле случая необходимо автоматически выгружать вложенный файл сразу же при приеме письма, содержащем вложение.Оказывается штатно это сделать нельзя, нужен макрос и соответствующее правило. 

Создаем проект, добавляем в него новый модуль и помещаем туда такой код:

Public Sub saveAtt (itm As Outlook.MailItem)

Dim objAtt As Outlook.Attachment 'переменная для работы с вложениями
Dim saveFolder As String 'переменная для пути к папке сохранения
Dim sDateMail as string 'переманная для даты письма
'сохраняем в правильном формате время создания сообщения
sDateMail = Format(itm.CreationTime, "hh-mm-ss_dd.mm.yyyy")
'задаем путь к папке сохранения
saveFolder = "C:\Users\Username\Desktop\"
'перебираем все вложения в письме
For each objAtt in itm.Attachments
'сохраняем вложение в папку под именем: дата письма + название файла вложения
objAtt.SaveAsFile saveFolder & "\" & sDateMail & "_" & objAtt.FileName
'очищаем переменную с вложением
Set objAtt = Nothing
Next objAtt

End Sub

Далее создаем правило. Задаем условие на письма и выбираем вариант действия "Запустить скрипт". Там в списке скриптов выбираем имя созданного выше макроса. Не забываем указать: "Разработчик" - "Безопасность макросов" - "Параметры макросов" - "Включить все макросы".

Фишка 1.
В последних версиях Outlook 2016/365 после секюрных патчей вариант действия "Запустить скрипт" отсутствует. Правится это неудобство в реестре добавлением ключа:

HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Security
DWORD: EnableUnsafeClientMailRules
Value: 1

Фишка 2.
Макрос заработает только после полной перезагрузки ОС.

Удачи.

No comments:

Post a Comment

А что вы думаете по этому поводу?