KutoolsforOffice — Одно решение — пять мощных инструментов.Меньше усилий — больше результата.

Как сохранить вложения из письма в Outlook, не открывая само письмо?

АвторSiluviaДата изменения

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

Сохранение вложений из одного или нескольких писем без открытия с помощью кода VBA
Сохранение вложений из одного или нескольких писем без открытия с помощью мощного инструмента


Сохранение вложений из одного или нескольких писем без открытия с помощью кода VBA

Приведённый ниже код VBA позволяет сохранять вложения из одного или нескольких писем одновременно — без необходимости открывать их в Outlook. Выполните следующие действия.

1. Выберите одно или несколько писем, вложения из которых нужно сохранить, и нажмите клавиши Alt+F11, чтобы открыть окно Microsoft Visual Basic for Applications.

2. Разверните папку Объекты Microsoft Outlook, дважды щёлкните элемент ThisOutlookSession, чтобы открыть окно Код, и вставьте приведённый ниже код VBA в это окно.

сохранение вложений с помощью VBA 1

Код VBA: Сохранение вложений без открытия писем

Public Sub SaveAttachmentsWithoutOpening()
'Updated by Extendoffice 20191008
Dim xMailItem As Outlook.MailItem
Dim xAttachments As Outlook.Attachments
Dim xAttachment As Outlook.Attachment
Dim i As Long
Dim xCount As Long
Dim xFileName As String
Dim xSavePath As String
Dim xOriginalFiles As String
On Error Resume Next
Set xShell = CreateObject("Shell.Application")
Set xFolder = xShell.BrowseForFolder(0, "Select a folder:", 0, strStartingFolder)
If Not TypeName(xFolder) = "Nothing" Then
    Set xFolderItem = xFolder.self
    xSavePath = xFolderItem.Path & "\"
Else
    xFileName = ""
    Exit Sub
End If
For Each xMailItem In Outlook.ActiveExplorer.Selection
    Set xAttachments = xMailItem.Attachments
    xCount = xAttachments.Count
    xOriginalFiles = ""
    If xCount > 0 Then
        For i = xCount To 1 Step -1
            Set xAttachment = xAttachments.Item(i)
            If IsEmbeddedAttachment(xAttachment) = False Then
                xFileName = xSavePath & xAttachment.FileName
                xAttachment.SaveAsFile xFileName
                xAttachment.Delete
                If xMailItem.BodyFormat <> olFormatHTML Then
                    xOriginalFiles = xOriginalFiles & vbCrLf & "file://" & xFileName
                Else
                    xOriginalFiles = xOriginalFiles & "<br>" & "<a href='file://" & xFileName & "'>" & xFileName & "</a>"
                End If
            End If
        Next i
        If xMailItem.BodyFormat <> olFormatHTML Then
            xMailItem.Body = "The file(s) were saved to " & xOriginalFiles & vbCrLf & vbCrLf & xMailItem.Body
        Else
            xMailItem.HTMLBody = "<p>" & "The file(s) were saved to " & xOriginalFiles & "</p>" & xMailItem.HTMLBody
        End If
        xMailItem.Save
    End If
Next
Set xAttachments = Nothing
Set xMailItem = Nothing
End Sub

Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
    xHtml = xItem.HTMLBody
    xID = "cid:" & xCid
    If InStr(xHtml, xID) > 0 Then
        IsEmbeddedAttachment = True
    End If
End If
End Function

4. Нажмите клавишу F5, чтобы запустить код. Откроется окно Выбор папки. Пожалуйста, выберите папку для сохранения вложений, затем нажмите кнопку ОК.

После этого все вложения из выбранных писем будут немедленно сохранены в указанную папку.

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

сохранение вложений с помощью VBA 2

Сохранение вложений из одного или нескольких писем без открытия с помощью мощного инструмента

Если вы только начинаете работать с VBA, метод, описанный в этом разделе, станет для вас отличным выбором.

Мы рекомендуем воспользоваться функцией Сохранить все вложения из пакета Kutools для Outlook. Если вы хотите сохранить вложения, не отсоединяя их от выбранных писем, функция «Сохранить все вложения» легко справится с этой задачей. Выполните следующие действия.
Перед использованием Kutools для Outlook сначала загрузите и установите его.

Прощай, неэффективная работа в Outlook! Kutools для Outlook упрощает пакетную обработку писем — попробуйте прямо сейчас с 30-дневной бесплатной пробной версией!Скачать Kutools для Outlook сейчас!!

1. Выберите письма с вложениями, которые нужно сохранить, и нажмите KUTOOLS PLUS > Инструменты вложений > Сохранить всё.

2. В диалоговом окне Настройки сохранения выполните следующие действия:

  • 2,1) В разделе Сохранить вложения в эту папкувыберите папку для сохранения вложений;
  • 2,2) Поле Сохранить вложения со следующим стилем необязательно — оно позволяет создать подпапку с определённым стилем для сохранения вложений или переименовать сохраняемые вложения по заданному шаблону.
  • 2,3) Нажмите кнопку ОК, чтобы начать сохранение всех вложений из выбранных писем.

Совет: При указанных выше настройках все вложения будут сохраняться в заданную папку. Если вы хотите сохранять только определённые вложения — например, только файлы PDF, в имени которых встречается слово «invoice», — настройте условия фильтрации следующим образом.

  • Нажмите кнопку Дополнительные параметры, чтобы развернуть условия фильтрации;
  • Укажите условия в соответствии с вашими потребностями.
    Совет: Я ставлю флажок Имя вложения, выбираю «содержит» и ввожу «invoice» в текстовое поле, затем отмечаю флажок Тип вложения и ввожу «.pdf» в текстовое поле.
сохранение вложений с помощью kutools 2

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

После этого вложения из выбранных писем будут сразу сохранены в указанную папку.

Совет: Чтобы отсоединить вложения от выбранных писем и оставить в теле письма только гиперссылки на них, воспользуйтесь функцией Отсоединить все вложения.


Связанные статьи

Автоматическая загрузка и сохранение вложений из Outlook в указанную папку
Обычно все вложения одного письма можно сохранить, выбрав в Outlook «Вложения» > «Сохранить все вложения». Но что делать, если нужно автоматически сохранять вложения из всех входящих писем? В этой статье — два эффективных способа автоматического сохранения вложений из Outlook в нужную папку.

Сохранение вложений при ответе на письмо в Outlook
При пересылке сообщения в Microsoft Outlook исходные вложения автоматически остаются в пересланном письме. Однако при ответе на письмо оригинальные вложения не прикрепляются к новому сообщению. В этой статье мы расскажем о нескольких эффективных способах сохранить исходные вложения при ответе в Microsoft Outlook.

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