如何在不打开邮件的情况下,在 Outlook 中保存附件?
您可能经常需要将收到邮件中的附件保存到电脑中。保存单个或全部附件都很简单,但如果要一次性保存多封邮件的附件,通常需要反复打开每封邮件并手动保存附件。那么,有没有办法避免这些重复操作呢?本教程将为您提供解决方案。
无需打开邮件,使用 VBA 代码批量保存一封或多封邮件的附件
无需打开邮件,使用神器快速保存多封邮件附件
无需打开邮件,使用 VBA 代码批量保存一封或多封邮件的附件
下方 VBA 代码可帮助您在 Outlook 中批量保存一封或多封邮件的所有附件,无需逐一打开每封邮件。请按照以下步骤操作:
1. 选中需要保存附件的邮件后,按下 Alt+F11 键,即可打开 Microsoft Visual Basic for Applications 窗口。
2. 展开 Microsoft Outlook Objects 文件夹,双击 ThisOutlookSession,即可打开代码窗口,然后将以下 VBA 代码复制粘贴进去。

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 窗口后,请选择用于保存附件的文件夹,然后点击确定按钮。
随后,所选邮件中的所有附件将会立即保存至您指定的文件夹。
注意:所有附件将从邮件中分离,并在邮件正文中保留对应的保存路径链接。

无需打开邮件,使用神器批量保存一封或多封邮件的附件
如果您对 VBA 不太熟悉,建议采用本节推荐的方法。
这里推荐 Kutools for Outlook 的 Save All attachments(全部保存附件)工具。如果您只想保存附件而不将其从选中邮件中分离,Save All attachments 功能即可轻松满足您的需求。操作步骤如下:
在应用 Kutools for Outlook 前,请先下载并安装。
告别 Outlook 低效!Kutools for Outlook 助您高效批量处理邮件——现已推出 30 天免费试用!立即下载 Kutools for Outlook!!
1. 选中包含需保存附件的邮件,点击 KUTOOLS PLUS> 附件工具>Save All(全部保存)。
2. 在保存设置对话框中,您需要完成以下操作:
- 2.1) 在保存附件到此文件夹部分,选择一个文件夹用于保存附件;
- 2.2)按以下样式保存附件框为可选项,您可自定义子文件夹样式保存附件,或按特定样式重命名已保存的附件。
- 2.3) 单击确定,即可开始保存所有已选邮件的附件。
提示:通过上述设置,所有附件将保存到指定文件夹。如果只需保存特定附件(如仅保存文件名包含“invoice”的 Pdf 文件),可按如下方式设置过滤条件。
- 单击高级选项按钮,展开筛选条件设置;
- 根据需求设置条件。
提示:此处我勾选了附件名称包含框,并在文本框中输入“invoice”;然后勾选附件类型为框,在文本框中输入“。pdf”。

3. 在下一个弹出的对话框中,点击是即可继续操作。
随后,所选邮件的所有附件将立即保存至指定文件夹。
提示:如需将选中邮件中的附件分离,仅在正文中保留附件的超链接,建议使用 Detach All attachments(全部分离附件)功能。
相关文章
自动将附件从 Outlook 下载/保存到指定文件夹
通常,您可以在 Outlook 中点击附件 > 全部保存附件,将一封邮件中的所有附件一次性保存。但如果想要自动保存所有收到的邮件及其附件,有没有更高效的解决方案?本文将为您介绍两种方法,助您自动将 Outlook 附件下载并保存到指定文件夹,轻松提升工作效率。
在 Outlook 回复时保留附件
在 Microsoft Outlook 中转发邮件时,原邮件的附件会自动保留在转发邮件中。但在回复邮件时,原始附件不会自动附加。本文将为您介绍几种在 Microsoft Outlook 回复邮件时保留原始附件的实用技巧,助您高效处理邮件附件,不容错过!
在 Outlook 中搜索附件(内容)里的关键词
当我们在 Outlook 的搜索框中输入关键词时,Outlook 会在邮件主题、正文和附件等内容中进行搜索。但如果您只想在附件内容中查找关键词,有什么方法可以实现呢?本文将为您详细介绍如何在 Outlook 内轻松检索附件内容中的文字,让查找更高效便捷。
- ✅ 一键便捷:只需一次操作,即可下载全部五个安装包。
- 🚀 轻松应对各类 Office 任务:随时按需安装所需插件,助您高效办公,不容错过!
- 🧰 包含:Kutools for Excel / Kutools for Outlook / Kutools for Word / Office Tab Pro / Kutools for PowerPoint
最佳办公效率工具
体验全新 Kutools for Outlook,畅享 100+ 强大功能!立即点击下载,不容错过!
🤖KUTOOLS AI:采用先进 AI 技术,轻松处理邮件,涵盖回复、摘要、优化、扩展、翻译及撰写等功能。
📧 邮件自动化:自动答复(支持 POP 和 IMAP)/定时发送邮件/发送邮件时按规则自动抄送密送/自动转发(高级规则)/自动添加称呼/自动将多收件人邮件拆分为单独信息……
📨 邮件管理:撤回邮件/按主题等条件拦截诈骗邮件/删除重复邮件/高级搜索/整合文件夹……
📁 附件增强:批量保存/批量分离/批量压缩/自动保存/自动拆离/自动压缩……
🌟 界面魔法:😊更多美观时尚表情/重要邮件到达时提醒您/最小化 Outlook 而不是直接关闭……
👍 一键精彩功能:带附件全部答复/反钓鱼邮件/🕘显示发送者当前时间时区……
👩🏼🤝👩🏻 联系人与日历:批量从选定邮件中提取添加联系人/将联系人组拆分为个人组/移除生日提醒……
在您的首选语言中畅享 Kutools —— 支持英语、西班牙语、德语、法语、中文等 40 多种语言!
一键解锁 Kutools for Outlook,告别等待,立即下载,让效率倍增!


🚀 一键下载 — 即可获取全部 Office 加载项
强烈推荐:Kutools for Office(5 合 1)
一键下载五个安装包,即可同时获得 Kutools for Excel、Outlook、Word、PowerPoint 和 Office Tab Pro。立即点击下载!