如何在Outlook中以一封/多封电子邮件打印所有附件?
如您所知,当您单击电子邮件时,它将仅打印电子邮件内容,例如标题,正文 文件 > 打印 在Microsoft Outlook中,但不打印附件。 在这里,我们将向您展示如何在Microsoft Outlook中轻松打印所选电子邮件中的所有附件。
一张一张打印一封电子邮件中的所有附件
Microsoft Outlook为我们提供了 快速打印 功能,可以帮助您一一打印电子邮件中的附件。
1。 选择您稍后将打印附件的电子邮件。
2。 单击此电子邮件中的一个附件。
3。 点击 快速打印 按钮在 查看订单 组上 附件 标签。
注意: 附件工具 在您单击电子邮件中的附件之前,不会激活它。
4. 出现打开邮件附件对话框,请单击 可选 按钮。
请注意,此步骤将打开选定的附件,并同时打印此选定的附件。
要打印此电子邮件中的其他附件,请重复步骤2至步骤4。
在Outlook中快速保存/导出多封电子邮件中的所有附件
通常,我们可以通过激活以下电子邮件来保存一封电子邮件中的附件 附件工具 并应用 保存所有附件 Outlook中的功能。 但是,如果从多封电子邮件或Outlook中的整个邮件文件夹中保存附件怎么办? 尝试使用Kutools for Outlook的 全部保存 (附件)功能。

批量打印一封电子邮件中的所有附件
如果一封电子邮件中有很多附件,则要逐个打印它们会很耗时。 以下方法将引导您轻松批量打印所选电子邮件中的所有附件。
1。 选择您稍后将打印附件的电子邮件。
2。 在Outlook 2010或更高版本中,请单击 文件 > 打印 > 列印选项。 请参见以下屏幕截图:
3. 在打印对话框中,请检查 打印附件。 附件将仅打印到默认打印机 在选项 打印选项 部分。
4。 点击 打印 按钮。
5。 在弹出的打开邮件附件对话框中,请单击 可选 按钮继续。 (备注:此对话框将分别为每个附件弹出。)
现在将立即打印此选定电子邮件中的所有附件。
批量打印多个选定电子邮件中的所有附件和图片
要在 Outlook 中打印多封电子邮件中的所有附件以及邮件正文中的所有图片,请按照以下步骤应用 VBA 代码。
1。 在邮件列表中,请按住 按Ctrl or 转移 键选择要打印附件的多封电子邮件。
2。 按 其他 + F11 键一起打开Microsoft Visual Basic for Applications窗口。
3。 在“ Microsoft Visual Basic for Applications”窗口中,单击“ 鑫安工具 > 参考资料。 然后检查 Microsoft脚本运行时 选项如下图。 完成后,单击 OK.
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 or 转移 键选择要打印附件的多封电子邮件。
2。 按 其他 + F11 键一起打开Microsoft Visual Basic for Applications窗口。
3。 在“ Microsoft Visual Basic for Applications”窗口中,单击“ 鑫安工具 > 参考资料。 然后检查 Microsoft脚本运行时 选项如下图。 完成后,单击 OK.
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电子邮件中打印一个或所有附件
小技巧: 在这个视频里, 库工具 选项卡添加者 Kutools 展望。 如果需要,请单击 此处 免费试用60天!
Kutools for Outlook-为Outlook带来100个高级功能,并使工作更加轻松!
- 自动CC / BCC 根据规则发送电子邮件; 自动转发 自定义多封电子邮件; 自动回复 没有交换服务器,还有更多自动功能...
- BCC警告 -当您尝试全部答复时显示消息 如果您的邮件地址在“密件抄送”列表中; 缺少附件时提醒,还有更多提醒功能...
- 在邮件对话中回复(全部)带有所有附件; 回复许多电子邮件 很快; 自动添加问候语 回复时将日期添加到主题中...
- 附件工具:管理所有邮件中的所有附件, 自动分离, 全部压缩,全部重命名,全部保存...快速报告, 计算选定的邮件...
- 强大的垃圾邮件 习俗 删除重复的邮件和联系人... 使您能够在Outlook中做得更聪明,更快和更好。
























