Menambah Label Otomatis#
Gunakan addLabel() dan createLabel() untuk mengorganisir email masuk.
Buat & Tambah Label ke Thread#
Example:
function labelImportant() { const threads = GmailApp.search('is:unread from:boss@company.com'); const label = GmailApp.getUserLabelByName('Penting') || GmailApp.createLabel('Penting');
threads.forEach((t) => t.addLabel(label));}Penjelasan:
search()mengembalikan arrayGmailThread.getUserLabelByName()ambil label existing, ataucreateLabel()buat baru.addLabel()terapkan ke thread.
Hapus Label#
Example:
function removeLabel() { const label = GmailApp.getUserLabelByName('Lama'); if (label) { const threads = label.getThreads(); threads.forEach((t) => t.removeLabel(label)); }}Filter & Pindahkan ke Folder (Archive)#
Example:
function archivePromo() { const label = GmailApp.getUserLabelByName('Promo') || GmailApp.createLabel('Promo'); const threads = GmailApp.search('category:promotions is:unread');
threads.forEach((t) => { t.addLabel(label); t.moveToArchive(); // keluar dari Inbox });}| Method | Fungsi |
|---|---|
search(query) | Cari thread pakai syntax Gmail |
createLabel(name) | Buat label baru |
getUserLabelByName(name) | Ambil label existing |
addLabel(label) | Tambah label ke thread |
removeLabel(label) | Hapus label dari thread |
moveToArchive() | Pindah ke All Mail (keluar Inbox) |
moveToInbox() | Balik ke Inbox |
Label Berdasarkan Domain Pengirim#
Example:
function labelByDomain() { const threads = GmailApp.search('is:unread'); threads.forEach((t) => { const msg = t.getMessages()[0]; const from = msg.getFrom(); const domain = from.match(/@([^>]+)/)?.[1] || 'unknown'; const label = GmailApp.getUserLabelByName(domain) || GmailApp.createLabel(domain); t.addLabel(label); });}Jalankan Otomatis (Trigger)#
Example:
function createAutoLabelTrigger() { ScriptApp.newTrigger('labelImportant') .timeBased() .everyMinutes(15) .create();}Note
Trigger time-based paling cepat 1 menit. Untuk real-time, gunakan
GmailAppdi Add-on (lebih kompleks).
Next#
Lanjut ke Level 3: DriveApp.