Save Gmail Files to Google Drive
The Google Script will save file attachments from Gmail threads marked with a particular label to a specific folder in Google Drive. It takes the last email message in a thread and saves the first attachment to Drive. Credit: S. Dolidze
Also see: Save Gmail Attachments to Google Drive
function main() {
var label = 'Clients/New York/Design';
var folder = 'design-assets';
folder = DriveApp.createFolder(folder);
GmailApp.getUserLabelByName(label).getThreads().map(lastMessage).map(extractAttachment).forEach(saveFile(folder));
}
function lastMessage(thread) {
return thread.getMessages().pop();
}
function extractAttachment(message) {
var blob = message.getAttachments()[0].copyBlob();
var filename = message.getFrom() + '.' + extension(blob.getName());
blob.setName(filename);
return blob;
}
function extension(filename) {
return filename.split('.').pop();
}
function saveFile(folder) {
return function (blob) {
folder.createFile(blob);
Logger.log('Saved file ' + blob.getName());
};
}
Amit Agarwal
Google Developer Expert, Google Cloud Champion
Amit Agarwal is a Google Developer Expert in Google Workspace and Google Apps Script. He holds an engineering degree in Computer Science (I.I.T.) and is the first professional blogger in India.
Amit has developed several popular Google add-ons including Mail Merge for Gmail and Document Studio. Read more on Lifehacker and YourStory