跳至主要内容

如何在Outlook中打印一封或多封邮件中的所有附件?

Author: Kelly Last Modified: 2025-07-31

众所周知,当您在Microsoft Outlook中点击 文件 > 打印 时,只会打印邮件内容(如邮件头、正文),而不会打印附件。在这里,我们将向您展示如何轻松地在Microsoft Outlook中打印选定邮件中的所有附件。


逐个打印一封邮件中的所有附件

Microsoft Outlook 提供了快速打印功能,可以帮助您逐个打印邮件中的附件。

1. 选择您稍后要打印其附件的邮件。

2. 点击该邮件中的一个附件。

steps of printing all attachments in one email message one by one

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

steps of printing all attachments in one email message one by one
注意: 附件工具 只有在您点击邮件中的附件时才会被激活。

4. 弹出“打开邮件附件”对话框,请点击 打开 按钮。

steps of printing all attachments in one email message one by one

请注意,此步骤将打开所选附件,并同时打印该附件。

要打印此邮件中的其他附件,请重复步骤2到步骤4。

快速保存/导出Outlook中多封邮件的所有附件

通常情况下,我们可以通过激活“附件工具 ”并应用Outlook中的“ 保存所有附件”功能来保存单封邮件的附件。但是,如果要从多封邮件或整个邮件文件夹中保存附件呢?试试 Kutools for Outlook 的 保存所有(附件) 功能。

save attachments in multiple emails kto9

批量打印一封邮件中的所有附件

如果一封邮件中有许多附件,逐个打印它们会非常耗时。以下方法将引导您轻松批量打印选定邮件中的所有附件。

1. 选择您稍后要打印其附件的邮件。

2. 在Outlook 2010或更高版本中,请点击 文件 > 打印 > 打印选项。请参见以下截图:

steps of batch printing all attachments in one email message

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

steps of batch printing all attachments in one email message

4. 点击 打印 按钮。

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

steps of batch printing all attachments in one email message

现在,选定邮件中的所有附件将一次性打印出来。


批量打印多封选定邮件中的所有附件和图片

要在Outlook中打印多封邮件中的所有附件以及正文中所有的图片,请按照以下步骤应用VBA代码。

1. 在邮件列表中,请按住 CtrlShift 键选择多封要打印其附件的邮件。

2. 同时按下 Alt + F11 键打开 Microsoft Visual Basic for Applications 窗口。

3. 在 Microsoft Visual Basic for Applications 窗口中,点击 工具 > 引用。然后勾选 Microsoft Scripting Runtime 选项,如下所示。完成后,点击 确定

steps of batch printing all attachments and pictures in multiple selected emails

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. 在邮件列表中,请按住 CtrlShift 键选择多封要打印其附件的邮件。

2. 同时按下 Alt + F11 键打开 Microsoft Visual Basic for Applications 窗口。

3. 在 Microsoft Visual Basic for Applications 窗口中,点击 工具 > 引用。然后勾选 Microsoft Scripting Runtime 选项,如下所示。完成后,点击 确定

the steps of batch printing all attachments in multiple selected emails except pictures in the body

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 免费版,70 多个强大功能,永久免费使用!点击立即下载!

🤖 Kutools AI 利用先进的AI技术轻松处理邮件,包括答复、总结、优化、扩展、翻译和撰写邮件。

📧 邮件自动化自动答复(支持POP和IMAP) /计划发送邮件 /发送邮件时根据规则自动抄送密送 / 自动转发(高级规则) / 自动添加问候语 / 自动将群发邮件拆分为单独邮件 ...

📨 邮件管理撤回邮件 / 按主题等方式阻止诈骗邮件 / 删除重复邮件 / 高级搜索 / 整合文件夹 ...

📁 附件专家批量保存 / 批量拆离 / 批量压缩 / 自动保存 / 自动拆离 / 自动压缩 ...

🌟 界面魔法😊更多精美个性表情 /重要邮件来临时提醒您 / 最小化而非关闭 Outlook ...

👍 一键高效操作带附件全部答复 /反钓鱼邮件 / 🕘显示发件人时区 ...

👩🏼‍🤝‍👩🏻 联系人与日历从选中的邮件批量添加联系人 / 将联系人组拆分为多个独立组 / 移除生日提醒 ...

使用 Kutools,支持英语、西班牙语、德语、法语、中文及40 多种其他语言,满足您的语言偏好!

一键解锁 Kutools for Outlook。无需等待,立即下载,提升办公效率!

kutools for outlook features1 kutools for outlook features2