The Save Gmail Attachments add-on for Google Drive downloads file attachments from an email message to a specific folder in your Google Drive. Internally, it uses Google Apps Script and the Advanced Drive Service to fetch the attachments and save them to Drive.
Here’s a sample snippet from the Gmail add-on that shows how you can use GmailApp service with Google Drive in Apps Script to create a copy of any Gmail attachment inside Google Drive.
We’ve set the includeAttachments option to true and includeInlineImages to false to only download regular (non-inline) attachments and not inline images.
export const saveGmailtoGoogleDrive = () => {
const folderId = 'Google_Drive_Folder_Id';
const searchQuery = 'has:attachments';
const threads = GmailApp.search(searchQuery, 0, 10);
threads.forEach((thread) => {
const messages = thread.getMessages();
messages.forEach((message) => {
const attachments = message.getAttachments({
includeInlineImages: false,
includeAttachments: true,
});
attachments.forEach((attachment) => {
Drive.Files.insert(
{
title: attachment.getName(),
mimeType: attachment.getContentType(),
parents: [{ id: folderId }],
},
attachment.copyBlob()
);
});
});
});
};