Как создавать рассылки с помощью Google Таблиц
Как это работает: бот собирает новые адреса и вставляет их один за другим в первый столбец (A3:A на листе "Sending"). Google-скрипт запускается по времени или при изменении таблицы (в зависимости от настроек триггера), создает рассылку с новыми адресами и перемещает их на лист "Log" с отметкой времени.
function SendMail() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet = ss.getSheetByName("Sending")
var email = sheet.getRange("a3:a").getValues()
var subj = sheet.getRange("c2").getValue()
var body = sheet.getRange("d2").getValue()
var arr = []
MailApp.sendEmail(email, subj, body)
arr = [[new Date(), email]]
//write sent addresses into Log
ss.getSheetByName("Log").getRange(ss.getSheetByName("Log").getLastRow()+1, 1, 1, 2).setValues(arr)
//clear the Sending sheet
sheet.getRange("a3:a").clearContent()
}
Настройка состоит из 4 частей: настройка таблицы, активация скрипта, настройка чат-бота и настройка триггера
Как настроить таблицу
Создайте копию таблицы с кодом: Файл -> Создать копию

Обратите внимание, что указано, что скрипты также будут скопированы — убедитесь, что это так при копировании таблицы. Нажмите "Создать копию".

На листе "Sending" вы изменяете только столбцы B2 и C2:

Теперь нужно проверить доступ к вашей таблице: она должна быть доступна для редактирования всем, у кого есть ссылка, как на скриншоте ниже.

Как активировать скрипт
В вашей таблице: Расширения -> Apps Script

Выберите "SendMail"

Нажмите "Run"
Нажмите "Review permissions"

Выберите аккаунт, с которого хотите отправлять рассылку.

Нажмите "Advanced"

Нажмите "Go to (название скрипта) (unsafe)"

Нажмите "Allow"

Теперь нужно убедиться, что скрипт активирован, проверив наличие письма с предупреждением безопасности в вашем аккаунте

Как настроить чат-бота
Рассмотрим в качестве примера следующую схему, состоящую из трех блоков

1) Первый зеленый блок "Проверка первичного условия" запускает диалог с ботом. Здесь мы вводим фразу, которая запустит его в условиях. Чтобы настройки сохранились в блоках, не забудьте нажать "Save" после добавления.

2) Теперь создайте блок ниже и отредактируйте соединение. Переключите вкладку "Пользователь вводит данные" и вставьте имя переменной (client_mail как в примере). Затем поместите регулярное выражение в условие для проверки email. На этом этапе важно проверить точность введенных данных, иначе скрипт будет сильно зависать. Вы можете использовать одно из следующих выражений:
^[a-z0-9][a-z0-9_.-]@([a-z0-9]+.)[a-z0-9][a-z0-9-]+.([a-z]{2,6})$
^[-\w.]+@([A-z0-9][-A-z0-9]+.)+[A-z]{2,4}$

Подробнее о регулярных выражениях здесь
3) Следующий блок — тот, который передает данные в таблицу. Настройте все, как на скриншоте (описание полей ниже)

-
Выберите тип запроса POST-json.
-
Вставьте URL функции в поле "URL запроса".
-
Вставьте следующую строку в поле "JSON параметры"
&#xNAN;{"id": "(ваш id параметр)", "mapping":{"a":"#{client_mail}"}, "list_name": "Sending"}
Вставьте ваш id параметр из ссылки на вашу таблицу. Вы можете найти его в ссылке на таблицу, после d/

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

Если все прошло гладко, откройте Расширения -> Apps Script -> SendMail, а затем Триггеры в меню слева.

Создайте новый триггер с помощью кнопки в правом нижнем углу экрана

Настройте его, как на скриншоте. Если вы настраиваете его по времени, учтите, что временной интервал должен быть не менее 30 минут. Вы можете выбрать свои значения, но помните, что существуют определенные квоты. Затем нажмите "Save".

Теперь триггер появился в списке. Настройка завершена!



