ПрограммированиеПроизводительность

Как отправить письмо в Google Sheet с помощью Google Scripts

Как отправить письмо в Google Sheet с помощью Google Scripts

Google Scripts — это мощный инструмент, который вы можете использовать для автоматизации инструментов повышения производительности Google. как листы и документы. Возможность автоматически отправлять электронные письма делает его очень мощным инструментом.

Возможно, вы являетесь сотрудником, надеющимся ежемесячно отправлять электронное письмо своему боссу с автоматически рассчитанными формулами в Google Sheets. Или, может быть, вы менеджер, который тратит слишком много времени на отправку по электронной почте отдельным членам вашей команды с такими вещами, как данные о производительности или обновления статуса. Функция Google Scripts, которую вы узнаете в этой статье, поможет вам выполнить эти задачи и многое другое.

Приложив немного усилий, вам больше никогда не придется отправлять данные вручную. Пусть Google Scripts будет вашим личным помощником, выполняя всю работу за вас.

Настройка вашего листа для отправки электронной почты

Первым шагом в получении вашего скрипта Google для отправки почты через Google Sheets является правильная настройка листа, в котором есть все имена, адреса электронной почты и сообщения для всех людей, которым вы хотите, чтобы скрипт отправлял по электронной почте.

В моем примере я начинаю с электронной таблицы, которую я настроил для автоматического импорта всех опубликованных статей за месяц из Google Analytics. Я создал лист «Все авторы», в котором перечислены опубликованные статьи для каждого автора, и теперь я хочу отправить каждому отдельному автору электронное письмо со своими подсчетами.

Чтобы начать, создайте свой специальный лист электронной почты, добавив новый лист в вашу текущую электронную таблицу и назовите его что-то вроде «Send-Emails».

отправить по электронной почте сценарии Google

На этом новом листе отправки электронной почты вы захотите создать заголовок. Каждая строка в этой таблице будет представлять собой отдельное электронное письмо, которое будет отправлено. Итак, в этом примере я создал лист для имени получателя, его адреса электронной почты и фрагментов сообщения, которые я собираюсь соединить внутри скрипта.

отправить по электронной почте сценарии Google

Вы можете создать электронное письмо любого размера и структуры, используя столбцы для объединения как статической, так и динамической информации.

отправить по электронной почте сценарии Google

Статическая информация — это просто текст, который я ввел в ячейку. Это не изменится из месяца в месяц. Это просто часть электронного письма, которая всегда остается неизменной. Однако для данных, которые вы хотите изменять каждый месяц, вы можете вставить функции, которые будут импортировать соответствующие данные из любого другого листа в вашу электронную таблицу.

отправить по электронной почте сценарии Google

Идея заключается в том, что всякий раз, когда вы открываете лист для просмотра вашего автоматизированного отчета, у вас будет пункт меню, по которому вы можете щелкнуть, чтобы запустить Google Script для отправки электронной почты и разослать результаты всем. Вы увидите, как настроить этот новый пункт меню в нижней части этой статьи.

Как только вы закончите создавать свой лист, он будет выглядеть примерно так:

отправить по электронной почте сценарии Google

Теперь, когда ваш лист для всех отдельных писем готов, пришло время написать сценарий!

Написание автоматического сценария электронной почты

Чтобы написать свой сценарий, вам нужно использовать редактор сценариев. Вы найдете редактор скриптов в меню Сервис , выбрав Редактор скриптов .

отправить по электронной почте сценарии Google

Редактор скриптов будет выглядеть примерно так: Вам нужно будет создать новую функцию в верхней части панели справа.

отправить по электронной почте сценарии Google

Просто скопируйте и вставьте скрипт ниже в область скриптов.

function sendArticleCountEmails() { var ss = SpreadsheetApp.getActiveSpreadsheet(); ss.setActiveSheet(ss.getSheetByName("Send-Emails")); var sheet = SpreadsheetApp.getActiveSheet(); var dataRange = sheet.getRange("A2:F4"); var data = dataRange.getValues(); for (i in data) { var rowData = data[i]; var emailAddress = rowData[1]; var recipient = rowData[0]; var message1 = rowData[2]; var message2 = rowData[3]; var parameter2 = rowData[4]; var message3 = rowData[5]; var message = 'Dear ' + recipient + ',\n\n' + message1 + ' ' + message2 + ' ' + parameter2 + ' ' + message3; var subject = 'Your article count for this month'; MailApp.sendEmail(emailAddress, subject, message); } } 

Этот скрипт может выглядеть несколько сложным, но на самом деле это совсем не так. Давайте разберемся, чтобы вы точно знали, что делает каждая строка.

Ломать код

Чтобы эта функция работала правильно, вам нужно убедиться, что лист, на котором хранится вся информация вашей электронной почты, действительно является активным листом. В противном случае все, что придет после, не будет работать. Вот для чего эти две строки:

 var ss = SpreadsheetApp.getActiveSpreadsheet(); ss.setActiveSheet(ss.getSheetByName("Send-Emails")); 

Далее нам нужно извлечь все данные из этого листа. Метод sheet.GetRange () извлекает информацию из любого диапазона ячеек, который вы предоставляете в кавычках. Затем метод dataRange.getValues ​​() фактически извлекает значения и сохраняет их в двумерном массиве с именем data .

 var sheet = SpreadsheetApp.getActiveSheet(); var dataRange = sheet.getRange("A2:F4"); var data = dataRange.getValues(); 

Теперь, когда у нас есть все данные, хранящиеся в массиве, мы можем перебрать массив, используя цикл for . Каждый элемент массива представляет собой строку, которая содержит одномерный массив элементов столбца. Вы можете ссылаться на каждый столбец, используя номер.

 var rowData = data[i]; var emailAddress = rowData[1]; var recipient = rowData[0]; var message1 = rowData[2]; var message2 = rowData[3]; var parameter2 = rowData[4]; var message3 = rowData[5]; 

Как вы можете видеть выше, я вытащил элементы столбца в одномерный массив с именем rowData . Затем я ссылаюсь на второй столбец (чтобы получить адрес электронной почты), ссылаясь на rowData [1] , второй элемент массива (первый элемент массива всегда равен нулю).

Следующий шаг в этой функции — собрать воедино все сегменты сообщений, составляющие основную часть письма. Приятно то, что вы можете придать содержанию электронной почты довольно хороший формат, используя символ \ n , который является переводом каретки. Вот как выглядит конкатенация тела письма:

 var message = 'Dear ' + recipient + ',\n\n' + message1 + ' ' + message2 + ' ' + parameter2 + ' ' + message3; 

Символ +это команда объединения Вы помещаете фактический статический текст в одинарные кавычки. Таким образом, это сообщение объединяется, помещая слово «Dear» перед переменной-получателем (в примечании «Dear» есть пробел).

Затем вы добавляете два возврата каретки в конец. Это запустит фактическое сообщение внутри тела двумя строками вниз. Затем вы добавляете первый сегмент сообщения, пробел, второй сегмент сообщения, пробел, переменную, которая будет вставляться в сообщение каждый месяц, и, наконец, последнюю часть сообщения.

Вы можете иметь столько частей сообщения, сколько хотите, вам просто нужно использовать больше столбцов, чтобы создать все сообщение по частям.

Последние несколько строк кода просто устанавливают строку темы для электронного письма (это может также включать данные из электронной таблицы, если вы хотите) и, наконец, метод sendEmail () .

Как запустить свой сценарий

Вернувшись в окно Script Editor, просто найдите функцию «onOpen». Если функция есть, вы, скорее всего, увидите кучу кода внутри скобок. Перейдите в конец этого кода и вставьте следующие строки:

 var spreadsheet = SpreadsheetApp.getActive(); var menuItems = [ {name: 'Send Emails', functionName: 'sendArticleCountEmails'} ]; spreadsheet.addMenu('Send Emails', menuItems); 

Просто убедитесь, что в параметрах functionName указано точное имя вашей функции в одинарных кавычках. Это будет загружать пользовательский пункт меню в ваш лист каждый раз, когда ваш лист открывается.

отправить по электронной почте сценарии Google

Теперь, когда вы ежемесячно открываете свою электронную таблицу, чтобы просмотреть все свои данные, все, что вам нужно сделать, — это нажать на пункт меню, чтобы отправить электронные письма. Это запустит вашу новую функцию и отправит все эти письма за вас. Работа, которая раньше занимала у вас несколько часов, теперь требует только одного щелчка мыши!

Сценарии Google могут помочь вам сэкономить время

Это всего лишь один из примеров того, как вы можете использовать Google Scripts для автоматизации всех видов задач. что сэкономит ваше время. Например, вы можете использовать Google Scripts для автоматического создания отчета Google Analytics . Сложность заключается лишь в том, что на это уходит немного времени, но каждую минуту, которую вы тратите на настройку автоматизации с помощью сценариев, экономится много часов. Просто подумайте обо всех других замечательных вещах, которые вы могли бы сделать за эти часы!

Вы когда-нибудь использовали умные Google Scripts для автоматизации своей работы? Поделитесь своими собственными примерами в разделе комментариев ниже!

Похожие посты
Программирование

Что такое канал RSS? (И где его взять)

Программирование

7 причин, почему изображения не загружаются на ваш сайт

Программирование

Запустите агент SQL Server: настройте SQL Server 2012

Программирование

15 лучших бесплатных обоев дня Святого Патрика