Outlook VBA Script автоматически сохраняет вложение, используя информацию в теле письма для присвоения имени файлу - PullRequest
0 голосов
/ 09 октября 2018

Требуется сценарий VBA для автоматического сохранения вложений, но необходимо использовать информацию в теле письма для присвоения имени сохраненному файлу.Пример электронной почты:

Информация о доставке:

Сообщение №: 246439839

Локальный номер: 2395945852 Удаленный CSID: 2399318665 Удаленный CID: 2392780330 Всего страниц: 1

Время получения: 08.06.2016, 7:09:50. Время передачи PDT: 32.000 с

Имя файла: NM-246439839-LN-2395945852-CSID-2399318665-CID-2392780330.pdf

Файлы всегда имеют формат PDF

Локальный номер, удаленный CSID и удаленный CID не всегда заполнены (поэтому мне нужно, чтобы все они могли использовать тот, который заполнен для фильтрации).

Сообщение # должно быть частью имени файла, чтобы обеспечить уникальное имя для каждого файла.

Электронная почта имеет формат HTML и всегда одинакова, поэтому может использовать теги, я могу опубликоватьHTML при необходимости.

Я уже создал сценарии, которые отслеживают папку, а затем сортируют / перемещают файлы в соответствующие места на основе имени файла.Письма поступают от нашего нового поставщика факсов, и они не могут добавить их в строку темы, как наша предыдущая система.

В настоящее время используется:

Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
    saveFolder = "c:\Data\Fax"
    For Each objAtt In itm.Attachments
        objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName
        Set objAtt = Nothing
    Next
End Sub

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 10 октября 2018

Просто обратитесь к примеру кода, вы можете обновить его по своему усмотрению:

Public p As String 'File Save location, also unzip the file storage location
Public Sub SaveAttach(Item As Outlook.MailItem)
    p = "C:\Users\Administrator.TXV6HLXTU3ZW8KD\Desktop\"
    SaveAttachment Item, p, "*.rar"  'Here *.rar can be changed to other regular expressions
    ' MsgBox "File saved."
End Sub

' save file
' path is the save path, condition is the attachment name match condition
Private Sub SaveAttachment(ByVal Item As Object, path$, Optional condition$ = "*")
    Dim olAtt As Attachment
    Dim i As Integer
    Dim m As Long
    Dim s As String
    If Item.Attachments.Count > 0 Then
        For i = 1 To Item.Attachments.Count
            Set olAtt = Item.Attachments(i)
            If olAtt.FileName Like condition Then
                olAtt.SaveAsFile path & olAtt.FileName
        'The following section is to extract the rar file, p is the save location
                s = "C:\Program Files\WinRAR\WinRAR.exe" & " X " & path & olAtt.FileName & " " & p 'Note Find the Decompression software location
                m = Shell(s, vbHide)
            End If
        Next
    End If
    Set olAtt = Nothing
End Sub

Затем в Outlook, чтобы создать новое правило, выберите действие для выполнения сценария, выберите сценарий для этого метода., вы можете получить сообщение, автоматически сохранять вложения и распаковывать на рабочий стол.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...