Как отправить электронную почту в листе Google с помощью сценариев Google
Продуктивность

Как отправить электронную почту в листе Google с помощью сценариев Google

Узнайте, как с помощью сценариев Google автоматизировать такие инструменты Google, как Таблицы и Документы, и сэкономить несколько часов времени

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

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

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

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

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

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

Чтобы начать работу, создайте специальный лист для отправки писем, добавив новый лист в текущую таблицу и назвав его как-нибудь вроде ‘Send-Emails’

В новом листе ‘Send-Emails’ нужно создать заголовок. Каждая строка в этой таблице будет представлять отдельное письмо, которое будет отправлено. В этом примере я создал лист для имени получателя, его адреса электронной почты и фрагментов сообщения, которые я собираюсь собрать воедино в сценарии

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

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

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

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

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

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

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

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

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

functionsendArticleCountEmails
varss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName('Send-Emails'));
varsheet = SpreadsheetApp.getActiveSheet();
vardataRange = sheet.getRange('A2:F4');
vardata = dataRange.getValues();
for(iindata) {
  varrowData = data i ;
  varemailAddress = rowData  ;
  varrecipient = rowData  ;
  varmessage1 = rowData  ;
  varmessage2 = rowData  ;
  varparameter2 = rowData  ;
  varmessage3 = rowData  ;
  varmessage ='Dear '+ recipient +',
'+ message1 +' '+ message2 +' '+ parameter2 +' '+ message3;
  varsubject ='Your article count for this month'
  MailApp.sendEmail(emailAddress, subject, message);

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

Разбираем код

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

varss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName('Send-Emails'));

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

varsheet = SpreadsheetApp.getActiveSheet();
vardataRange = sheet.getRange('A2:F4');
vardata = dataRange.getValues();

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

varrowData = data i ;
varemailAddress = rowData  ;
varrecipient = rowData  ;
varmessage1 = rowData  ;
varmessage2 = rowData  ;
varparameter2 = rowData  ;
varmessage3 = rowData  ;

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

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

varmessage ='Dear '+ recipient +',
'+ message1 +' '+ message2 +' '+ parameter2 +' '+ message3;

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

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

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

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

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

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

varspreadsheet = SpreadsheetApp.getActive();
varmenuItems =  
name'Send Emails'functionName'sendArticleCountEmails'
 ;
spreadsheet.addMenu('Send Emails', menuItems);

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

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

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

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

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

Об авторе

Алексей Белоусов

Привет, меня зовут Филипп. Я фрилансер энтузиаст . В свободное время занимаюсь переводом статей и пишу о потребительских технологиях для широкого круга изданий , не переставая питать большую страсть ко всему мобильному =)

Комментировать

Оставить комментарий