Сохранить вложение в папку Outlook - PullRequest
2 голосов
/ 21 декабря 2011

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

Проблема, с которой я столкнулся, заключается в том, что исходное письмо было отправлено как вложение, а не каквперед!так что я хотел бы сделать:

  1. Открыть письмо в папке Received и запустить код VBA, который будет
  2. Извлечь вложение из переадресованной почты в Receivedи сохраните это вложение в Forwarded папку
  3. Удалите переадресованную почту в папке Received.

У меня нет понимания кода Outlook VBA, поэтому я не понимаюдаже нет отправной точки!

Любая помощь будет с благодарностью!

Ответы [ 2 ]

1 голос
/ 21 декабря 2011

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

0 голосов
/ 21 декабря 2011

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

Убедитесь, что

  • ваши папки Переадресовано и Получено действительно существует в папке "Входящие".
  • Код требует каталог C:\temp\ для обработки встроенных писем

    Sub SaveOlAttachments()
    
    Dim olFolder As MAPIFolder
    Dim olFolder2 As MAPIFolder
    Dim msg As MailItem
    Dim msg2 As MailItem
    Dim strFilePath As String
    Dim strTmpMsg As String
    
    'path for creating attachment msg file for stripping
    strFilePath = "C:\temp\"
    strTmpMsg = "KillMe.msg"
    
    'My testing done in Outlok using a "temp" folder underneath Inbox
    Set olFolder = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
    Set olFolder2 = olFolder.Folders("Forwarded")
    Set olFolder = olFolder.Folders("Received")
    
    For Each msg In olFolder.Items
        If msg.Attachments.Count > 0 Then
            If Right$(msg.Attachments(1).FileName, 3) = "msg" Then
                msg.Attachments(1).SaveAsFile strFilePath & strTmpMsg
                Set msg2 = Application.CreateItemFromTemplate(strFilePath & strTmpMsg)
            End If
            msg.Delete
            msg2.Move olFolder2
        End If
    Next
    End Sub
    
...