Published using Google Docs
Write-App Article #1
Updated automatically every 5 minutes

CITIZEN DEVELOPER INDONESIA

HART EXINITY

13 maret 2021

WRITE

   |

APP

Gmail

Apps Script

Google Drive

We connect silos.

We build digital.

We automate.

We are Appmakers.

We bridge gaps.

study

CASE

Apabila anda ingin secara otomatis backup attachment dari gmail ke folder Google Drive, maka write-apps ini menjelaskan langkah untuk melakukannya.

(pdf, excel, docs, photo)

Persyaratan:

  • Google Account.
  • Email yang berisikan attachment.

Script Utama

function exinityGMail2Gdrive() {  
 
var sheet   = SpreadsheetApp.getActiveSheet();  
 
var gmailLabels  = sheet.getRange("D4:D4").getValue();  
 
var driveFolder  = sheet.getRange("D5:D5").getValue();  
 
var archiveLabel = sheet.getRange("D6:D6").getValue();  
 
var moveToLabel = getGmailLabel(archiveLabel);  
 
var filter = createFilter(gmailLabels, archiveLabel);  
 
var threads = GmailApp.search(filter, 0, 5);  
 
var folder = getFolder(driveFolder);  
 
for (var x=0; x<threads.length; x++) {    
   
var message = threads[x].getMessages()[0];    
   
var desc   = message.getSubject() + " #" + message.getId();
   
var att    = message.getAttachments();
   threads[x].addLabel(moveToLabel);    
   
for (var z=0; z<att.length; z++) {
     
try {                
       file = folder.createFile(att[z]);
       file.setDescription(desc);
     }
     
catch (e) {
       Logger.log(e.toString());
     }
   }  
 }
}

Script Kustom

function createFilter(label, archiveLabel) {
 label = label.replace(
/\s+/g, "-");
 archiveLabel = archiveLabel.replace(
/\s+/g, "-");  
 
var filter = "has:attachment -label:" + archiveLabel + " label:" + label;  
 
return filter;  
}
function getFolder(parent) {  
 
var parentFolder, searchFolder = DriveApp.getFoldersByName(parent);
   
if (searchFolder.hasNext()) {
   parentFolder = searchFolder.next();
 }
else {
   parentFolder = DriveApp.createFolder(parent);
 }  
 
return parentFolder;  
}
function getGmailLabel(name) {  
 name = name.replace(
/\s+/g, "-");  
 
var label = GmailApp.getUserLabelByName(name);  
 
if ( ! label ) {    
   label = GmailApp.createLabel(name);    
 }  
 
return label;  
}

Script Kustom Menu Google Sheet

function configure() {  
 reset();  
 ScriptApp.newTrigger(
"sendToGoogleDrive").timeBased().everyMinutes(5).create();  
 Browser.msgBox(
"Initialized", "The program is now running.", Browser.Buttons.OK);  
}

function onOpen() {  
 
var menu = [    
   { name:
"Step 1: Authorize",   functionName: "configure" },
   { name:
"Step 2: Run Program", functionName: "configure" },
   { name:
"Uninstall (Stop)",    functionName: "reset"     }
 ];  
 SpreadsheetApp.getActiveSpreadsheet()
 .addMenu(
"Gmail Attachments", menu);
}

function reset() {  
 
var triggers = ScriptApp.getProjectTriggers();  
 
for (var i = 0; i < triggers.length; i++) {
   ScriptApp.deleteTrigger(triggers[i]);    
 }  
}

Step-by-Step

  1. Klik Tools pada menu spreadsheet anda.
  2. Pilih Script Editor.

  1. Pilih code.gs
  2. Copy dan Paste seluruh script diatas kedalam file code.gs

  1. Klik Untitled Project.
  2. Berikan nama project sesuai yang diinginkan.

Step-by-Step

  1. Pada cell D4 isi dengan nama label gmail yang ingin di monitor. (Contoh : Inbox)
  2. Pada Cell D5 Isi dengan nama folder pada google drive anda.
  3. Berikan nama pada cell D6, berfungsi untuk melakukan filter pada email yang attachmentnya sudah disimpan pada google drive anda.
  1. Melakukan otorisasi pada script anda dengan memilih menu tambahan yang sudah kita buat.
  2. Pilih authorize.

  1. Setelah memilih authorize akan muncul pop up seperti ini, klik continue.

Step-by-Step

  1. Pilih akun google anda.

  1. Selanjutnya pilih allow.

  1. Setelah melakukan otorisasi, langkah selanjutnya adalah menjalankan program Apps Script dengan memilih Step 2: Run Program.

Step-by-Step

  1. Selanjutnya akan muncul pop up seperti foto disamping.

  1. Buka google drive anda.
  2. Cek folder google drive anda, akan muncul folder sesuai dengan nama yang kita berikan pada langkah no 8.

  1. Setiap email yang memiliki attachment, selanjutnya attachment tersebut akan terunduh secara otomatis pada folder yang sudah anda tentukan.

Kontak Kami

Hart Exinity Indonesia

021-123456 |

info@hartexinity.com

https://www.hartexinity.com/