如何在Outlook中打印一封或多封邮件中的所有附件?
众所周知,当您在Microsoft Outlook中点击 文件 > 打印 时,只会打印邮件内容(如邮件头、正文),而不会打印附件。在这里,我们将向您展示如何轻松地在Microsoft Outlook中打印选定邮件中的所有附件。
逐个打印一封邮件中的所有附件
Microsoft Outlook 提供了快速打印功能,可以帮助您逐个打印邮件中的附件。
1. 选择您稍后要打印其附件的邮件。
2. 点击该邮件中的一个附件。

3. 在“附件”选项卡上的“操作”组中,点击 快速打印 按钮。

注意: 附件工具 只有在您点击邮件中的附件时才会被激活。
4. 弹出“打开邮件附件”对话框,请点击 打开 按钮。

请注意,此步骤将打开所选附件,并同时打印该附件。
要打印此邮件中的其他附件,请重复步骤2到步骤4。
快速保存/导出Outlook中多封邮件的所有附件
通常情况下,我们可以通过激活“附件工具 ”并应用Outlook中的“ 保存所有附件”功能来保存单封邮件的附件。但是,如果要从多封邮件或整个邮件文件夹中保存附件呢?试试 Kutools for Outlook 的 保存所有(附件) 功能。

批量打印一封邮件中的所有附件
如果一封邮件中有许多附件,逐个打印它们会非常耗时。以下方法将引导您轻松批量打印选定邮件中的所有附件。
1. 选择您稍后要打印其附件的邮件。
2. 在Outlook 2010或更高版本中,请点击 文件 > 打印 > 打印选项。请参见以下截图:

3. 在“打印”对话框中,请勾选“打印附加文件。附件将仅打印到默认打印机”选项,在“打印选项”部分中。

4. 点击 打印 按钮。
5. 在弹出的“打开邮件附件”对话框中,请点击 打开 按钮以继续。(注意:此对话框将为每个附件分别弹出。)

现在,选定邮件中的所有附件将一次性打印出来。
批量打印多封选定邮件中的所有附件和图片
要在Outlook中打印多封邮件中的所有附件以及正文中所有的图片,请按照以下步骤应用VBA代码。
1. 在邮件列表中,请按住 Ctrl 或 Shift 键选择多封要打印其附件的邮件。
2. 同时按下 Alt + F11 键打开 Microsoft Visual Basic for Applications 窗口。
3. 在 Microsoft Visual Basic for Applications 窗口中,点击 工具 > 引用。然后勾选 Microsoft Scripting Runtime 选项,如下所示。完成后,点击 确定。

4. 点击 插入 > 模块,然后将以下VBA代码粘贴到新模块窗口中。
VBA:打印多封Outlook邮件中的所有附件
Sub PrintAllAttachmentsInMultipleMails()
'Update by ExtendOffice 2022/08/03
Dim xShellApp As Object
Dim xFSO As Scripting.FileSystemObject
Dim xItem As Object
Dim xTempFldPath, xFilePath As String
Dim xSelItems As Outlook.Selection
Dim xMailItem As Outlook.MailItem
Dim xAttachments As Outlook.Attachments
Dim xAttachment As Outlook.Attachment
Dim xFile As File
On Error Resume Next
Set xFSO = New Scripting.FileSystemObject
xTempFldPath = xFSO.GetSpecialFolder(2).Path & "\Attachments " & Format(Now, "yyyymmddhhmmss") 'xFSO.GetSpecialFolder(2) For saving temporary files
If xFSO.FolderExists(xTemfldpath) = False Then 'create temporary folder
xFSO.CreateFolder (xTempFldPath)
End If
Set xSelItems = Outlook.ActiveExplorer.Selection
Set xShellApp = CreateObject("Shell.Application")
For Each xItem In xSelItems
If xItem.Class = OlObjectClass.olMail Then
Set xMailItem = xItem
Set xAttachments = xMailItem.Attachments
For Each xAttachment In xAttachments
xFilePath = xTempFldPath & "\" & xAttachment.FileName
xAttachment.SaveAsFile (xFilePath)
Next
End If
Next
For Each xFile In xFSO.GetFolder(xTempFldPath).Files
VBA.DoEvents
Call xShellApp.ShellExecute(xFile.Path, "", "", "print", 0)
Next
Set xSelItems = Nothing
Set xShellApp = Nothing
Set xFSO = Nothing
End Sub
5. 按下 F5 键或点击 运行 按钮运行此VBA代码。现在您将看到选定邮件中的所有附件和正文中图片都已打印出来。
注意:
- 每张图片都会弹出一个对话框,要求您确认打印。而其他类型的文件将直接打印。
- 如果邮件签名中有图片,它们也会弹出对话框。
- 如果您收到“此项目中的宏已被禁用”错误,请查看本教程:如何在Outlook中启用和禁用宏?
批量打印多封选定邮件中的所有附件,但不包括正文中图片
要在Outlook中仅打印多封邮件中的附件而不打印正文中图片,请按照以下步骤应用VBA代码。
1. 在邮件列表中,请按住 Ctrl 或 Shift 键选择多封要打印其附件的邮件。
2. 同时按下 Alt + F11 键打开 Microsoft Visual Basic for Applications 窗口。
3. 在 Microsoft Visual Basic for Applications 窗口中,点击 工具 > 引用。然后勾选 Microsoft Scripting Runtime 选项,如下所示。完成后,点击 确定。

4. 点击 插入 > 模块,然后将以下VBA代码粘贴到新模块窗口中。
VBA:打印多封Outlook邮件中的所有附件
Sub PrintAllAttachmentsInMultipleMails()
'Update by ExtendOffice 2022/08/05
Dim xShellApp As Object
Dim xFSO As Scripting.FileSystemObject
Dim xItem As Object
Dim xTempFldPath, xFilePath As String
Dim xSelItems As Outlook.Selection
Dim xMailItem As Outlook.MailItem
Dim xAttachments As Outlook.Attachments
Dim xAttachment As Outlook.Attachment
Dim xFile As File
On Error Resume Next
Set xFSO = New Scripting.FileSystemObject
xTempFldPath = xFSO.GetSpecialFolder(2).Path & "\Attachments " & Format(Now, "yyyymmddhhmmss") 'xFSO.GetSpecialFolder(2) For saving temporary files
If xFSO.FolderExists(xTemfldpath) = False Then 'create temporary folder
xFSO.CreateFolder (xTempFldPath)
End If
Set xSelItems = Outlook.ActiveExplorer.Selection
Set xShellApp = CreateObject("Shell.Application")
For Each xItem In xSelItems
If xItem.Class = OlObjectClass.olMail Then
Set xMailItem = xItem
Set xAttachments = xMailItem.Attachments
For Each xAttachment In xAttachments
If IsEmbeddedAttachment(xAttachment) = False Then
xFilePath = xTempFldPath & "\" & xAttachment.FileName
xAttachment.SaveAsFile (xFilePath)
Debug.Print xFilePath
End If
Next
End If
Next
For Each xFile In xFSO.GetFolder(xTempFldPath).Files
VBA.DoEvents
Call xShellApp.ShellExecute(xFile.Path, "", "", "print", 0)
Next
Set xSelItems = Nothing
Set xShellApp = Nothing
Set xFSO = 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
5. 按下 F5 键或点击 运行 按钮运行此VBA代码。现在您将看到选定邮件中的所有附件都已打印出来。
注意:
- 每个附带的图片都会弹出一个对话框,要求您确认打印。而其他类型的文件将直接打印。
- 正文中图片不会被打印。
- 如果您收到“此项目中的宏已被禁用”错误,请查看本教程:如何在Outlook中启用和禁用宏?
演示:在Outlook邮件中打印一个或所有附件
最佳 Office 办公效率工具
最新消息:Kutools for Outlook 推出免费版!
体验全新 Kutools for Outlook,超过100 种强大功能!立即点击下载!
🤖 Kutools AI :采用先进的 AI 技术,轻松处理邮件,包括答复、总结、优化、扩展、翻译和撰写邮件。
📧 邮箱自动化:自动答复(支持 POP 和 IMAP) /计划发送邮件 /发送邮件时按规则自动抄送密送 / 自动转发(高级规则) / 自动添加问候语 / 自动将多收件人的邮件分割为单独邮件 ...
📨 邮件管理:撤回邮件 / 按主题及其他条件阻止欺诈邮件 / 删除重复邮件 / 高级搜索 / 整合文件夹 ...
📁 附件增强:批量保存 / 批量拆离 / 批量压缩 / 自动保存 / 自动拆离 / 自动压缩 ...
🌟 界面魔法:😊更多美观酷炫的表情 /重要邮件到达时提醒 / 最小化 Outlook 而非关闭 ...
👍 一键高效操作:带附件全部答复 / 防钓鱼邮件 / 🕘显示发件人时区 ...
👩🏼🤝👩🏻 联系人与日历:批量添加选中邮件中的联系人 / 分割联系人组为单独的组 / 移除生日提醒 ...
可根据您偏好选择 Kutools 使用语言——支持英语、西班牙语、德语、法语、中文及40 多种其他语言!
只需点击一下即可立即激活 Kutools for Outlook。无需等待,立即下载,提升工作效率!


🚀 一键下载——获取所有 Office 插件
强烈推荐:Kutools for Office(五合一)
一键下载五个安装包:Kutools for Excel、Outlook、Word、PowerPoint以及 Office Tab Pro。 立即点击下载!
- ✅ 一键便利操作:一次下载全部五个安装包。
- 🚀 随时满足 Office任务需求:需要哪个插件随时安装即可。
- 🧰 包含:Kutools for Excel / Kutools for Outlook / Kutools for Word / Office Tab Pro / Kutools for PowerPoint