How to print all attachments in one/multiple emails in Outlook?
As you know, it will only print the email content such as header, body when you click the File > Print in Microsoft Outlook, but not print the attachments. Here we will show you how to print all attachments in a selected email at ease in Microsoft Outlook.
- Print all attachments in one email message one by one
- Batch print all attachments in one email message
- Batch print all attachments and pictures in multiple selected emails
- Batch print all attachments in multiple selected emails except pictures in the body
Print all attachments in one email message one by one
Microsoft Outlook provides us with Quick Print feature, which can help you print attachments in an email message one by one.
1. Select the email message whose attachments you will print later.
2. Click one attachment in this email.
3. Click the Quick Print button in the Actions group on the Attachments tab.
Note: the Attachment Tools won’t be activated until you click attachments in emails.
4. An Opening Mail Attachment dialog comes out, and please click the Open button.
Please note that this step will open the selected attachment, and print this selected attachment at the same time.
To print other attachments in this email, please repeat the Step 2 to Step 4.
Quickly save/export all attachments from multiple emails in Outlook
Normally we can save attachments from one email with activating the Attachment Tools and applying the Save All Attachments feature in Outlook. But, what if saving attachments from multiple emails, or from the whole mail folder in Outlook? Try Kutools for Outlook's Save All (Attachments) feature.
Batch print all attachments in one email message
If there are many attachments in the one email message, it will be time-consuming to print them one by one. And the following method will walk you through batch printing all attachments in a selected email message easily.
1. Select the email message whose attachments you will print later.
2. In Outlook 2010 or later versions, please click the File > Print > Print Options. See the following screenshot:
3. In the Print dialog box, please check the Print attached files. Attachments will print to the default printer only option in the Print options section.
4. Click the Print button.
5. In the popping out Opening Mail Attachment dialog box, please click the Open button to go ahead. (Note: This dialog box will pop out for each attachment separately.)
Now all attachments in this selected email message will be printed at once.
Batch print all attachments and pictures in multiple selected emails
To print all attachments in multiple emails as well as all the pictures in the message body in Outlook, please follow the below steps to apply a VBA code.
1. In the mailing list, please hold Ctrl or Shift keys to select multiple emails whose attachments you will print.
2. Press Alt + F11 keys together to open the Microsoft Visual Basic for Applications window.
3. In the Microsoft Visual Basic for Applications window, click Tools > References. And then check the Microsoft Scripting Runtime option as shown below. Once finished, click OK.
4. Click Insert > Module, and then paste below VBA code into the new module window.
VBA: Print all attachments in multiple Outlook emails
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. Press F5 key or click the Run button to run this VBA code. Now you will see that all attachments in the selected emails and the pictures in the meesage body are printed out.
Note:
- Each image will bring up a pop-up dialog box to ask for you confirmation of printing. While other types of files will be printed directly.
- If there are images in an email signature, they will bring up pop-up dialog boxes as well.
- If you get The macros in this project are disabled error, please check this tutorial: How To Enable And Disable Macros In Outlook?
Batch print all attachments in multiple selected emails except pictures in the body
To only print attachments in multiple emails but the pictures in the message body in Outlook, please follow the below steps to apply a VBA code.
1. In the mailing list, please hold Ctrl or Shift keys to select multiple emails whose attachments you will print.
2. Press Alt + F11 keys together to open the Microsoft Visual Basic for Applications window.
3. In the Microsoft Visual Basic for Applications window, click Tools > References. And then check the Microsoft Scripting Runtime option as shown below. Once finished, click OK.
4. Click Insert > Module, and then paste below VBA code into the new module window.
VBA: Print all attachments in multiple Outlook emails
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. Press F5 key or click the Run button to run this VBA code. Now you will see that all the attachments in the selected emails are printed out.
Note:
- Each attached image will bring up a pop-up dialog box to ask for you confirmation of printing. While other types of files will be printed directly.
- Images in the message body will not be printed.
- If you get The macros in this project are disabled error, please check this tutorial: How To Enable And Disable Macros In Outlook?
Demo: print one or all attachments in an Outlook email
Tip: In this Video, Kutools tab is added by Kutools for Outlook. If you need it, please click here to have a 60-day free trial without limitation!
Best Office Productivity Tools
Kutools for Outlook - Over 100 Powerful Features to Supercharge Your Outlook
🤖 AI Mail Assistant: Instant pro emails with AI magic--one-click to genius replies, perfect tone, multilingual mastery. Transform emailing effortlessly! ...
📧 Email Automation: Out of Office (Available for POP and IMAP) / Schedule Send Emails / Auto CC/BCC by Rules When Sending Email / Auto Forward (Advanced Rules) / Auto Add Greeting / Automatically Split Multi-Recipient Emails into Individual Messages ...
📨 Email Management: Easily Recall Emails / Block Scam Emails by Subjects and Others / Delete Duplicate Emails / Advanced Search / Consolidate Folders ...
📁 Attachments Pro: Batch Save / Batch Detach / Batch Compress / Auto Save / Auto Detach / Auto Compress ...
🌟 Interface Magic: 😊More Pretty and Cool Emojis / Boost Your Outlook Productivity with Tabbed Views / Minimize Outlook Instead of Closing ...
👍 One-click Wonders: Reply All with Incoming Attachments / Anti-Phishing Emails / 🕘Show Sender's Time Zone ...
👩🏼🤝👩🏻 Contacts & Calendar: Batch Add Contacts From Selected Emails / Split a Contact Group to Individual Groups / Remove Birthday Reminders ...
Over 100 Features Await Your Exploration! Click Here to Discover More.