Google Scripts to Automate Your Gmail
1 Snooze your emails
Sometime, after reading an email, you want it to return to your inbox after a few days. With the following Google script, you can do so:1. Create a new Google script with the following code:
------------------------------------------------------------------------------
var MARK_UNREAD = true; var ADD_UNSNOOZED_LABEL = false; function getLabelName(i) { return "Snooze/Snooze " + i + " days"; } function setup() { // Create the labels we’ll need for snoozing GmailApp.createLabel("Snooze"); for (var i = 1; i <= 7; ++i) { GmailApp.createLabel(getLabelName(i)); } if (ADD_UNSNOOZED_LABEL) { GmailApp.createLabel("Unsnoozed"); } } function moveSnoozes() { var oldLabel, newLabel, page; for (var i = 1; i <= 7; ++i) { newLabel = oldLabel; oldLabel = GmailApp.getUserLabelByName(getLabelName(i)); page = null; // Get threads in "pages" of 100 at a time while(!page || page.length == 100) { page = oldLabel.getThreads(0, 100); if (page.length > 0) { if (newLabel) { // Move the threads into "today’s" label newLabel.addToThreads(page); } else { // Unless it’s time to unsnooze it GmailApp.moveThreadsToInbox(page); if (MARK_UNREAD) { GmailApp.markThreadsUnread(page); } if (ADD_UNSNOOZED_LABEL) { GmailApp.getUserLabelByName("Unsnoozed") .addToThreads(page); } } // Move the threads out of "yesterday’s" label oldLabel.removeFromThreads(page); } } } } --------------------------------------------------------------------
|
2. Send SMS for important emails
This Google script make use of the Google Calendar’s SMS feature to send you SMS for important emails.1. Create a new Google script with the following code:
--------------------------------------------------------------------------------------
function Gmail_send_sms(){ var label = GmailApp.getUserLabelByName("Send Text"); if(label == null){ GmailApp.createLabel('Send Text'); } else{ var threads = label.getThreads(); var now = new Date().getTime(); for (var i = 0; i < threads.length; i++) { var message = threads[i].getMessages()[0]; var from = message.getFrom(); var subject = message.getSubject(); CalendarApp.createEvent(subject, new Date(now+60000), new Date(now+60000), {location: from}).addSmsReminder(0); } label.removeFromThreads(threads); } } -------------------------------------------------------------------------
|
3. Lastly, you have to set a filter to add the “Send Text” label to all important incoming emails. The script will scan your inbox every 5 minutes and when it detects an email with the “Send Text” label, it will create an immediate event in Google Calender which will then trigger the SMS.
3. Schedule email to send at a later date
Boomerang is one web service that you can use to schedule emails to send at a later date, but that requires you to install a browser extension. Gmail Delay Send is a Google Script that can do the same task.1. Go to this link and click the “Install” link. Once you have authorized the script to access your Gmail, it will redirect you to another page where you can configure the script.
2. Once configured, you can then proceed to draft an email and include the future date/time for it to send and save it as draft with the “GmailDelaySend/ToSend” label.
4. Save Gmail message as PDF in Google Drive
If you have an email that you want to archive in Google Drive, you can use Google script to save it as PDF in your Google Drive account. The following script will save all the messages in an email thread as one PDF file in your Google Drive. If it comes with attachments, it will create a folder and store the messages and attachments within.1. Create a new Google script with the following code:
-----------------------------------------------------------------------------------------
function save_Gmail_as_PDF(){ var label = GmailApp.getUserLabelByName("Save As PDF"); if(label == null){ GmailApp.createLabel('Save As PDF'); } else{ var threads = label.getThreads(); for (var i = 0; i < threads.length; i++) { var messages = threads[i].getMessages(); var message = messages[0]; var body = message.getBody(); var subject = message.getSubject(); var attachments = message.getAttachments(); for(var j = 1;j<messages.length;j++){ body += messages[j].getBody(); var temp_attach = messages[j].getAttachments(); if(temp_attach.length>0){ for(var k =0;k<temp_attach.length;k++){ attachments.push(temp_attach[k]); } } } // Create an HTML File from the Message Body var bodydochtml = DocsList.createFile(subject+'.html', body, "text/html") var bodyId=bodydochtml.getId(); // Convert the HTML to PDF var bodydocpdf = bodydochtml.getAs('application/pdf'); if(attachments.length > 0){ DocsList.createFolder(subject); var folder = DocsList.getFolder(subject); for (var j = 0; j < attachments.length; j++) { folder.createFile(attachments[j].getName(),attachments[j].getBytes()); } folder.createFile(bodydocpdf); } else{ DocsList.createFile(bodydocpdf); } DocsList.getFileById(bodyId).setTrashed(true); label.removeFromThread(threads[i]); } } } ---------------------------------------------------------
|
0 التعليقات:
Post a Comment