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

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 Attachments comes out, and please click the Open button in it.

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. Click for 60-day free trial without limitation!
save attachments in multiple emails kto9

Batch print all attachments in one email message

If there are many attachments in the selected email message, it will be time-consuming to print them one by one. And the follow method will walk you through batch printing all attachments in one email messages 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 screen shot:

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 together.

Batch print all attachments in multiple selected emails

To print all attachments in multiple emails in Outlook, please follow below steps to apply the 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. Click Insert > Module, and then paste below VBA code into the new module window.

VBA: Print all attachments in multiple Outlook emails

Sub PrintAllAttachmentsInMultipleMails()

Dim xFileSystemObj, xShellApp As Object
Dim xNameSpace, xNameSpaceItem, 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 On Error Resume Next

Set xFileSystemObj = CreateObject("Scripting.FileSystemObject")

xTempFldPath = xFileSystemObj.GetSpecialFolder(2).Path & "\Attachments " & Format(Now, "yyyymmddhhmmss") 'xFileSystemObj.GetSpecialFolder(2) For saving temporary files 

If xFileSystemObj.FolderExists(xTemfldpath) = False Then 'create temporary folder

xFileSystemObj.CreateFolder (xTempFldPath)

End If

Set xSelItems = Outlook.ActiveExplorer.Selection

Set xShellApp = CreateObject("Shell.Application")

Set xNameSpace = xShellApp.NameSpace(0)

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)

Set xNameSpaceItem = xNameSpace.ParseName(xFilePath)

xNameSpaceItem.InvokeVerbEx ("print")


End If

Set xItem = Nothing
Set xNameSpaceItem = Nothing
Set xNameSpace = Nothing
Set xShellApp = Nothing
Set xFileSystemObj = Nothing
End Sub

4. Press F5 key or click the Run button to run this VBA code.
Now all attachments in the selected emails are printed out.

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!

Kutools for Outlook - Brings 100 Advanced Features to Outlook, and Make Work Much Easier!

  • Auto CC/BCC by rules when sending email; Auto Forward Multiple Emails by custom; Auto Reply without exchange server, and more automatic features...
  • BCC Warning - show message when you try to reply all if your mail address is in the BCC list; Remind When Missing Attachments, and more remind features...
  • Reply (All) With All Attachments in the mail conversation; Reply Many Emails in seconds; Auto Add Greeting when reply; Add Date into subject...
  • Attachment Tools: Manage All Attachments in All Mails, Auto Detach, Compress All, Rename All, Save All... Quick Report, Count Selected Mails...
  • Powerful Junk Emails by custom; Remove Duplicate Mails and Contacts... Enable you to do smarter, faster and better in Outlook.
shot kutools outlook kutools tab 1180x121
shot kutools outlook kutools plus tab 1180x121

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    stefano · 1 years ago
    if a pdf has the same name the macro prints just one pdf, how can i change the code in order to modify the pdf name?
  • To post as a guest, your comment is unpublished.
    Coreen · 3 years ago
    if you want to print all attachments together in 1 email here's what you do. first make a folder on your desktop....I named mine "print". go to the email with the attachments....highlight all of the attachments, right click, save all attachments to the print folder. Open the print folder.....highlight all of them.....right click.....print.

    now if only I could figure out how to print all the attachments in 200 emails without opening each one and printing it.
    • To post as a guest, your comment is unpublished. · 3 years ago
      Kutools for Outlook's Detach All (Attachments) feature can help you download all attachments from multiple emails with several clicks!
  • To post as a guest, your comment is unpublished.
    Susan · 3 years ago
    Agree with Leah, this does not work. It just prints out the main body of the email and the first attachment, not all of them. Need instructions on how to print them all using "select all" options shown above.
  • To post as a guest, your comment is unpublished.
    Leah · 4 years ago
    I could figure this part out for myself - what I'm trying to figure out is why, despite doing that, attachments wouldn't print. An error message pops up for each attachment asking if I want to "open" or "save". Choosing either option produces exactly those results - in other words, still no print, just an open or save. I have 20 attachments from 4 emails. I really don't want to have to open 80 documents just to be able to print them. There is clearly some "save me from myself" security setting that needs to be obliterated so that I can use my own computer and the operating system I bought and paid for. THAT'S what I need to know.
  • To post as a guest, your comment is unpublished.
    Ken Heart · 6 years ago
    This is very useful, but doesn't help me with Office 365??