diff --git a/advanced/gmail.gs b/advanced/gmail.gs index d866e05f6..b8a55dd5a 100644 --- a/advanced/gmail.gs +++ b/advanced/gmail.gs @@ -1,5 +1,5 @@ /** - * Copyright Google LLC + * Copyright 2021 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,30 +13,37 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -// [START apps_script_gmail_label] +// [START gmail_label] /** * Lists the user's labels, including name, type, * ID and visibility information. */ -function listLabelInfo() { - var response = + +function listLabelInfo(){ + try{ + const response = Gmail.Users.Labels.list('me'); - for (var i = 0; i < response.labels.length; i++) { - var label = response.labels[i]; + for (let i = 0; i < response.labels.length; i++) { + const label = response.labels[i]; Logger.log(JSON.stringify(label)); } + } + catch(err){ + Logger.log(err) + } } -// [END apps_script_gmail_label] +// [END gmail_label] -// [START apps_script_gmail_inbox_snippets] +// [START gmail_inbox_snippets] /** * Lists, for each thread in the user's Inbox, a * snippet associated with that thread. */ function listInboxSnippets() { - var pageToken; + try{ + let pageToken; do { - var threadList = Gmail.Users.Threads.list('me', { + const threadList = Gmail.Users.Threads.list('me', { q: 'label:inbox', pageToken: pageToken }); @@ -47,20 +54,24 @@ function listInboxSnippets() { } pageToken = threadList.nextPageToken; } while (pageToken); + } + catch(err){ + Logger.log(err) + } } -// [END apps_script_gmail_inbox_snippets] +// [END gmail_inbox_snippets] -// [START apps_script_gmail_history] +// [START gmail_history] /** * Gets a history record ID associated with the most * recently sent message, then logs all the message IDs * that have changed since that message was sent. */ -function logRecentHistory() { +function logRecentHistory () { // Get the history ID associated with the most recent // sent message. - var sent = Gmail.Users.Threads.list('me', { + const sent = Gmail.Users.Threads.list('me', { q: 'label:sent', maxResults: 1 }); @@ -68,18 +79,19 @@ function logRecentHistory() { Logger.log('No sent threads found.'); return; } - var historyId = sent.threads[0].historyId; + const historyId = sent.threads[0].historyId; // Log the ID of each message changed since the most // recent message was sent. - var pageToken; - var changed = []; + try{ + let pageToken; + let changed = []; do { - var recordList = Gmail.Users.History.list('me', { + const recordList = Gmail.Users.History.list('me', { startHistoryId: historyId, pageToken: pageToken }); - var history = recordList.history; + const history = recordList.history; if (history && history.length > 0) { history.forEach(function(record) { record.messages.forEach(function(message) { @@ -91,23 +103,32 @@ function logRecentHistory() { } pageToken = recordList.nextPageToken; } while (pageToken); + changed.forEach(function(id) { Logger.log('Message Changed: %s', id); }); + } + catch(err){ + Logger.log(err) + } } -// [END apps_script_gmail_history] - -// [START apps_script_gmail_raw] +// [END gmail_history] +// [START gmail_raw] function getRawMessage() { - var messageId = Gmail.Users.Messages.list('me').messages[0].id; + try{ + const messageId = Gmail.Users.Messages.list('me').messages[0].id; console.log(messageId); - var message = Gmail.Users.Messages.get('me', messageId, { + const message = Gmail.Users.Messages.get('me', messageId, { 'format': 'raw' }); // Get raw content as base64url encoded string. - var encodedMessage = Utilities.base64Encode(message.raw); + const encodedMessage = Utilities.base64Encode(message.raw); console.log(encodedMessage); + } + catch(err){ + Logger.log(err) + } } -// [END apps_script_gmail_raw] +// [END gmail_raw] diff --git a/gmail/markup/Code.gs b/gmail/markup/Code.gs index 61e2048d0..af6e45ab6 100644 --- a/gmail/markup/Code.gs +++ b/gmail/markup/Code.gs @@ -1,14 +1,19 @@ -// [START apps_script_gmail_markup] +// [START gmail_markup] /** - * Tests the schema. + * Send an email with schemas in order to test email markup. */ function testSchemas() { - var htmlBody = HtmlService.createHtmlOutputFromFile('mail_template').getContent(); + try{ + const htmlBody = HtmlService.createHtmlOutputFromFile('mail_template').getContent(); MailApp.sendEmail({ to: Session.getActiveUser().getEmail(), subject: 'Test Email markup - ' + new Date(), htmlBody: htmlBody, }); + } + catch(err){ + Logger.log(err) + } } -// [END apps_script_gmail_markup] +// [END gmail_markup] diff --git a/gmail/quickstart/quickstart.gs b/gmail/quickstart/quickstart.gs index 97f28a1de..eb39cb01e 100644 --- a/gmail/quickstart/quickstart.gs +++ b/gmail/quickstart/quickstart.gs @@ -1,5 +1,5 @@ /** - * Copyright Google LLC + * Copyright 2021 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,15 +18,20 @@ * Lists the labels in the user's account. */ function listLabels() { - var response = Gmail.Users.Labels.list('me'); + try{ + const response = Gmail.Users.Labels.list('me'); if (response.labels.length == 0) { Logger.log('No labels found.'); } else { Logger.log('Labels:'); - for (var i = 0; i < response.labels.length; i++) { - var label = response.labels[i]; + for (let i = 0; i < response.labels.length; i++) { + const label = response.labels[i]; Logger.log('- %s', label.name); } } + } + catch(err){ + Logger.log(err) + } } // [END gmail_quickstart] diff --git a/gmail/sendingEmails/sendingEmails.gs b/gmail/sendingEmails/sendingEmails.gs index 219e16ba8..1817ac7b3 100644 --- a/gmail/sendingEmails/sendingEmails.gs +++ b/gmail/sendingEmails/sendingEmails.gs @@ -1,5 +1,5 @@ /** - * Copyright Google LLC + * Copyright 2021 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,56 +14,70 @@ * limitations under the License. */ -// [START apps_script_gmail_send_emails] +// [START gmail_send_emails] /** * Sends emails with data from the current spreadsheet. */ function sendEmails() { - var sheet = SpreadsheetApp.getActiveSheet(); - var startRow = 2; // First row of data to process - var numRows = 2; // Number of rows to process + try{ + // Get the active sheet in spreadsheet + const sheet = SpreadsheetApp.getActiveSheet(); + let startRow = 2; // First row of data to process + let numRows = 2; // Number of rows to process // Fetch the range of cells A2:B3 - var dataRange = sheet.getRange(startRow, 1, numRows, 2); + const dataRange = sheet.getRange(startRow, 1, numRows, 2); // Fetch values for each row in the Range. - var data = dataRange.getValues(); - for (var i in data) { - var row = data[i]; - var emailAddress = row[0]; // First column - var message = row[1]; // Second column - var subject = 'Sending emails from a Spreadsheet'; + const data = dataRange.getValues(); + for (let i in data) { + const row = data[i]; + const emailAddress = row[0]; // First column + const message = row[1]; // Second column + let subject = 'Sending emails from a Spreadsheet'; + //Send emails to emailAddresses which are presents in First column MailApp.sendEmail(emailAddress, subject, message); } + } + catch(err){ + Logger.log(err) + } } -// [END apps_script_gmail_send_emails] +// [END gmail_send_emails] -// [START apps_script_gmail_send_emails_2] +// [START gmail_send_non_duplicate_emails] // This constant is written in column C for rows for which an email // has been sent successfully. -var EMAIL_SENT = 'EMAIL_SENT'; +let EMAIL_SENT = 'EMAIL_SENT'; /** * Sends non-duplicate emails with data from the current spreadsheet. */ -function sendEmails2() { - var sheet = SpreadsheetApp.getActiveSheet(); - var startRow = 2; // First row of data to process - var numRows = 2; // Number of rows to process +function sendNonDuplicateEmails() { + try{ + // Get the active sheet in spreadsheet + const sheet = SpreadsheetApp.getActiveSheet(); + let startRow = 2; // First row of data to process + let numRows = 2; // Number of rows to process // Fetch the range of cells A2:B3 - var dataRange = sheet.getRange(startRow, 1, numRows, 3); + const dataRange = sheet.getRange(startRow, 1, numRows, 3); // Fetch values for each row in the Range. - var data = dataRange.getValues(); - for (var i = 0; i < data.length; ++i) { - var row = data[i]; - var emailAddress = row[0]; // First column - var message = row[1]; // Second column - var emailSent = row[2]; // Third column + const data = dataRange.getValues(); + for (let i = 0; i < data.length; ++i) { + const row = data[i]; + const emailAddress = row[0]; // First column + const message = row[1]; // Second column + const emailSent = row[2]; // Third column if (emailSent !== EMAIL_SENT) { // Prevents sending duplicates - var subject = 'Sending emails from a Spreadsheet'; + let subject = 'Sending emails from a Spreadsheet'; + //Send emails to emailAddresses which are presents in First column MailApp.sendEmail(emailAddress, subject, message); sheet.getRange(startRow + i, 3).setValue(EMAIL_SENT); // Make sure the cell is updated right away in case the script is interrupted SpreadsheetApp.flush(); } } + } + catch(err){ + Logger.log(err) + } } -// [END apps_script_gmail_send_emails_2] +// [END gmail_send_non_duplicate_emails]