Рассылка email из таблиц Google одним кликом

По работе понадобилось рассылать сотрудникам письма исходя из данных таблицы. Как это произвести в один клик, хоть массово, хоть адресно? С помощью скрипта Google по такой схеме:

  1. Имеем таблицу с email-адресами и данными для отправки.
  2. Создаём скрипт Google, рассылающий письма на адреса из выделенных ячеек.
  3. Ставим в документ кнопку, при нажатии на которую этот скрипт срабатывает.

Рассмотрим более подробно по пунктам.

  1. Формируем таблицу

Всё что нам нужно, это адреса и данные:

Screenshot_1

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

  1. Создание скрипта

Инструменты → Редактор скриптов.

Screenshot_2

Выделяем всё, удаляем всё, копируем на пустой лист этот код:

function sendSelectedEmails() {
var sheet = SpreadsheetApp.getActiveSheet();
var activeRange = sheet.getActiveRange();
var data = activeRange.getValues();
for (i in data) {
var row = data[i];
var emailAddress = row[0];
var subject = row[1];
var message = row[2];
MailApp.sendEmail(emailAddress, subject, message);
}
}

То же самое на скриншоте:

Screenshot_3

Сохраняем. Имена скрипта и проекта значения не имеют.

Что делает скрипт: построчно берёт данные из выделенных ячеек и рассылает почту. В нашем случае он берёт адрес emailAddress, тему subject и сообщение message. Элементы массива row — это номера ячеек в строке слева направо, начиная от 0.

Насчёт обещанных данных в скрипте. При необходимости объединить строки (например, для добавления постоянного адреса, на который копируются письма) используем конкатенацию с помощью плюса:

var emailAddress = row[0] + ', admin@site.my';

Конечно, используемых ячеек может быть больше, они могут другое положение относительно друг друга. Поэтому просто меняем под свои нужды цифры в row[…].

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

  1. Кнопка «Отправить email»

Кнопка создаётся как рисунок, на который позже назначается скрипт.

Вставка → Рисунок → Рисуем нужный нам объект (например, прямоугольник со скруглёнными краями), при необходимости делаем надпись:

Screenshot_4

Жмём «Сохранить и закрыть». Теперь через выпадающее меню рисунка назначаем ему скрипт:

Screenshot_5

А если точнее, то основную функцию из нашего скрипта:

Screenshot_6

Сохраняем. Вот теперь действительно всё. Можно выделить одну или несколько строк и щёлкнуть по кнопке. В первый раз Google запросит разрешения для скрипта на отправку email.

По материалам раз и два.