Is it possible to select multiple email messages, and then download the files in their attachments in one archive file?
The native way to click to open the emails one by one, and click to download their attachments individually is tedious.
Web Applications Stack Exchange is a question and answer site for power users of web applications. It only takes a minute to sign up.
Sign up to join this communityIs it possible to select multiple email messages, and then download the files in their attachments in one archive file?
The native way to click to open the emails one by one, and click to download their attachments individually is tedious.
Select all emails containing the attachments you wish to download.
Click the three dots at the top menu and go down to "Forward as attachment" then forward all emails to yourself.
You can then download all attachments from that one email to a folder on your hard drive. The attachments will be interspersed with the email files, but you can quickly delete the email files by sorting by type of file, highlighting and deleting. All attachments will be left in the folder and you can combine them into a PDF file or easily print them all using the program of your choosing.
I tried @EthanStrickler's answer, but it did not apply to my use case as all emails are in a single thread (imagine using scan-to-email for 50 pages, resulting in 50 emails all with the same subject). However, that makes it easier, actually. Here's my solution:
Now, you do not even have to send this email!
Don't forget to cancel sending this message to save storage space:
It does not really answer your question for existing mail, but going forward it is really convenient to setup a "receipe" on IFTTT. You can create a rule (e.g. based on sender) and have attachments saved to Google Drive automatically.
I was also questioning same to myself and then I developed https://github.com/munir131/attachment-downloader small utility to solve this problem.
It allow me to download all attachment in bulk. If you have little knowledge about how to run node application then it will be solve your problem.
You might try "Mail Attachment Downloader" http://gearmage.com/maildownloader.html
It doesn't work on selected mails, but you can filter by subject, sender, etc.
There are options to select certain labels, but I couldn't get it working.
It did the job for getting emailed snapshots from a security camera into one folder.
Works a treat, processes like a beast, with options too https://gearmage.com/maildownloader.html
This works but is limited to 61 messages at a time under a free version: https://workspace.google.com/marketplace/app/save_emails_and_attachments/513239564707
It may not be as simple as selecting multiple thread then right-click "Download All attachments" but it does work.
I did this using Outlook but you could do this with any POP/IMAP software. You download all emails without deleting them on Gmail. You can make sure the client does not delete when you setup the account in Gmail.
Then, you have to figure out a way to save all attachments from that application. In Outlook, it's quite simple. You can create a small function or Subroutine in VBA to save all attachments. In other software, you will have to figure it out yourself. Search mAttachmentSaver.bas on Google and you should have all that you need. Here's the copy of DataSolveProblems Gist
Sub Download_Attachments()
Dim ns As NameSpace
Dim olFolder_Inbox As Folder
Dim olMail As MailItem
Dim olAttachment As Attachment
Dim fso As Object
Dim Files_Saved_Folder_Path As String
Files_Saved_Folder_Path = "<Your folder path>"
Set ns = GetNamespace("MAPI")
Set fso = CreateObject("Scripting.FileSystemObject")
Set olFolder_Inbox = ns.GetDefaultFolder(olFolderInbox)
For Each olMail In olFolder_Inbox.Items
If TypeName(olMail) = "MailItem" And olMail.Attachments.Count > 0 Then
fso.CreateFolder (fso.BuildPath(Files_Saved_Folder_Path, Trim(olMail.Subject)))
For Each olAttachment In olMail.Attachments
Select Case UCase(fso.GetExtensionName(olAttachment.FileName))
Case "XLSX", "XLSM"
olAttachment.SaveAsFile fso.BuildPath(Files_Saved_Folder_Path, Trim(olMail.Subject)) & "\" & olAttachment.FileName
Case "JPEG", "PNG", "JPG"
'olAttachment.SaveAsFile fso.BuildPath(Files_Saved_Folder_Path, Trim(olMail.Subject)) & "\" & olAttachment.FileName
Case Else
'skip
End Select
Next olAttachment
End If
Next olMail
Set olFolder_Inbox = Nothing
Set fso = Nothing
Set ns = Nothing
End Sub
If you don't want to use Outlook, you can use Thunderbird