Перейти к содержимому

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

Author: Siluvia Last Modified: 2025-08-07

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

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


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

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

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

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

save attachments with 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 для запуска кода. Затем появится окно BrowseForFolder, пожалуйста, выберите папку для сохранения вложений, а затем нажмите кнопку OK.

Затем все вложения в выбранных письмах будут немедленно сохранены в выбранную папку.

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

save attachments with VBA 2

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

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

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

Раскройте максимальную эффективность электронной почты с Kutools для Outlook! Получите доступ к 70 мощным функциям абсолютно бесплатно навсегда. Скачайте бесплатную версию прямо сейчас!

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

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

  • 2.1) В разделе Сохранить вложения в эту папку выберите папку для сохранения вложений;
  • 2.2) Поле Сохранить вложения со следующим стилем является необязательным для создания подпапки с определенным стилем для сохранения вложений или переименования сохраненных вложений с определенным стилем.
  • 2.3) Нажмите OK, чтобы начать сохранение всех вложений из выбранных писем.

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

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

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

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

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


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

Автоматическая загрузка/сохранение вложений из Outlook в определенную папку
Как правило, вы можете сохранить все вложения одного письма, нажав Вложения > Сохранить все вложения в Outlook. Но если вам нужно сохранить все вложения из всех полученных и входящих писем, есть идея? Эта статья представит два решения для автоматической загрузки вложений из Outlook в определенную папку.

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

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