Outlook добавляет правило, затем запускает скрипт и сохраняет вложения в папку - PullRequest
0 голосов
/ 19 марта 2019

Я использую этот скрипт в правилах

Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
    Dim objAtt As Outlook.Attachment
    Dim saveFolder As String
    saveFolder = "c:\temp\"

    MkDir itm.Parent, saveFolder ' here creating folder if not exist

    For Each objAtt In itm.Attachments
        objAtt.SaveAsFile saveFolder & "\" & itm.Parent & "\" & objAtt.DisplayName
        Set objAtt = Nothing
    Next

End Sub

enter image description here

Но проблема заключается в том, что все приложения, сохраняемые в INBOX, называются папкой, а не в папке, в которойпочта была перемещена.

Итак, как получить имя папки, в которой электронное письмо было перемещено по правилу?

Итак, теперь сохраняется в c:\temp\Inbox, но должно быть в c:\temp\Unfiled или, если папка перемещенаэто подпапка, поэтому должно быть c:\temp\Folder\Unfiled

1 Ответ

2 голосов
/ 19 марта 2019

Я считаю, что ваша проблема в том, что вы запрашиваете правило перемещения MailItem и сценария для сохранения вложений. Из вашего описания я делаю вывод, что Outlook запускает скрипт, прежде чем правило перемещает MailItem. Это не то, что должен сказать Мастер правил, но симптомы не совпадают с тем, что говорит Мастер правил.

Адрес папки диска saveFolder & "\" & itm.Parent & "\" & objAtt.DisplayName. Перед перемещением MailItem itm.Parent является «Входящие». Только после хода itm.Parent будет «незапятнанным».

Ваш выбор включает:

  1. Сценарий сохраняет вложения и перемещает электронное письмо, чтобы вы могли контролировать последовательность.
  2. Сохранить вложения в saveFolder & "\Unfiled\" & objAtt.DisplayName
...