И получать максимальный отклик.
Как делать не надо
Вот канонический пример некачественной автоматизированной рассылки:



У этого письма есть некоторые недостатки, которые воспринимаются как проявление неуважения:
- Грубое обращение к человеку в теме письма (эту странную фишку применяют многие спамеры);
- В поле «Отправитель» указан адрес, не принадлежащий конкретной личности;
- Письмо пришло в полтретьего ночи;
- Обращение в начале письма не соответствует этике делового общения;
- Текст не отформатирован;
- Много неуместного выделения слов большими буквами;
- Информация об отправителе дается в самом конце письма;
- Отправители явно не читали текст рассылки.
На такое предложение нет желания отвечать. Если бы письмо было составлено аккуратнее, то я бы из вежливости написала несколько слов о том, что мне это не интересно и консультант могла вывести меня на диалог и, возможно, уговорить на сотрудничество. Но после такого сообщения, я постараюсь обходить эту «Международную редакцию» стороной.
Как сделать лучше
Чтобы получать ответы на свои рассылки следует придерживаться правила:
Получатель должен быть уверен, что письмо составлено персонально для него
Мало кто любит отвечать на автоматические письма. Но лишь у самого невежливого или загруженного почтой человека совесть позволит не черкнуть хотя бы пару строк на сообщение адресованное лично ему.
Из вышеприведенного правила вытекают рекомендации:
- Письмо желательно отправлять от имени конкретного человека;
- У письма не должно быть несколько десятков получателей (так происходит, когда рассылки делают через копию);
- Лучше, когда тема письма четко отражает его суть;
- В начале письма желательно поздороваться;
- К человеку лучше обратиться по имени, указав на его половую принадлежность. Пример: «Уважаемый Михаил!»;
- Если пишете в первый раз, то в начале письма неплохо бы представиться;
- Отправлять письмо желательно в рабочее время;
- В конце письма можно еще раз обратиться по имени и намекнуть о своем ожидании ответа на письмо;
- В письмо лучше не вставлять ссылку на файл, а прикрепить его в виде вложения.
Эти рекомендации не являются аксиомами делового этикета. Это просто пожелания, основанные на собственном опыте получения тысяч автоматически сгенерированных писем с пресс-релизами, приглашениями, анкетами и предложениями услуг.
Рассылки на GAS
А теперь, перейдем к самой интересной части статьи. Научимся делать автоматизированные рассылки с помощью Google Apps Script, видоизмененной версии JavaScript. Этот язык предназначен для автоматизации работы с сервисами Google.
Об использовании Google Apps Script уже вышло несколько статей на iPhones. Рекомендую ознакомиться с ними для более глубокого понимания темы.
- 4 лайфхака Gmail и Google Apps Script
- Автоматизируем Google Таблицы на Google Apps Script
- Google Apps Script для Docs в примерах
- Простые автоматизации для Google Drive
- Планируем жизнь с Google Calendar и Google Apps Script
- Открываем doc.google.com и создаем новую электронную таблицу;
- В первый столбец забиваем получателей, а во второй их адреса;
- Открываем Инструменты -> Редактор скриптов;
- Вбиваем туда следующий код, не забыв указать нужное число получателей:
[jscript]
function sendMails() {
// 5 надо заменить на число адресатов в таблице
var rowsAmount = 5;
// Здесь надо указать тему писем
var messageSubject = "Пресс-релиз";
// Создаем переменную для активного листа
var currentSheet = SpreadsheetApp.getActiveSheet();
// Выделяем диапазон данных и получаем из него данные
var dataRange = currentSheet.getRange(1, 1, rowsAmount, 2);
var data = dataRange.getValues();
// Обходим поочередно ряды в таблице
for (i in data) {
var row = data[i];
// Из первого столбца берем адрес
var emailAddress = row[0];
// А из второго имя получателя
var messageText = row[1] + ", " + "высылаем Вам пресс-релиз";
MailApp.sendEmail(emailAddress, messageSubject, messageText);
}
}
[/jscript] - Нажимаем на кнопку Запустить и даем скрипту все разрешения, которые он попросит.
- В третьем столбце обозначить пол абонента: «мужской» или «женский».
- Немного видоизменить вышеприведенный код:
[jscript]
function sendMails() {
// 5 надо заменить на число адресатов в таблице
var rowsAmount = 5;
// Здесь надо указать тему писем
var messageSubject = "Пресс-релиз";
// Создаем переменную для активного листа
var currentSheet = SpreadsheetApp.getActiveSheet();
// Выделяем диапазон данных и получаем из него данные
var dataRange = currentSheet.getRange(1, 1, rowsAmount, 3);
var data = dataRange.getValues();
// Обходим поочередно ряды в таблице
for (i in data) {
var row = data[i];
// Из первого столбца берем адрес
var emailAddress = row[0];
// Формируем текст обращения
if(row[2]=="женский")
{
var appeal = "Уважаемая";
}
else if(row[2]=="мужской")
{
var appeal = "Уважаемый";
}
// Перенос строки обозначается символом \n
var appealText = appeal + " " + row[1] +"!\n";
var messageText = appealText + "Высылаем Вам пресс-релиз";
MailApp.sendEmail(emailAddress, messageSubject, messageText);
}
}
[/jscript] - Открываем редактор скриптов;
- Вставляем в него код двух функций:
[jscript]
// Функция для создания меню
function createMenu() {
var currentSheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [
{
name : "Рассылка",
functionName : "sendEmails" }];
currentSheet.addMenu("Мои скрипты", entries);
}
// Ставим триггер для отображения меню при открытии документа
function onOpen() {
createMenu();
}
[/jscript] - Обновляем таблицу в браузере.
Сделать автоматическую рассылку в Gmail очень просто:
Это был базовый пример кода, на основе которого можно сделать рассылку любой сложности. Разберем несколько приемов по его доработке.
Добавляем обращение
Традиционно, первую строку в письме занимает обращение: «Уважаемый Михаил!» или «Уважаемая Анастасия». Чтобы добавить обращение к автоматическому письму надо сделать следующие:
Форматируем текст письма
В примере плохой рассылки, приведенном в начале статьи «важные» слова выделены CAPS-ом. На мой вкус, это не добавляет позитивных эмоций получателю. Если есть необходимость выделить что-то в тексте письма, то лучше выделить это курсивом или жирным шрифтом. Сделать это можно с помощью языка разметки HTML. Этот код нужно поставить после объявления переменной appealText:
[jscript]
var messageText = appealText + "Высылаем Вам пресс-релиз";
var messageHTML = appealText + "Высылаем <i>Вам</i> <b>пресс-релиз</b>";
MailApp.sendEmail(emailAddress, messageSubject,messageText, {"htmlBody":messageHTML});
[/jscript]
Две переменные с текcтом письма указываются у метода sendEmail на случай, если почтовые клиенты получателей не поддерживают HTML.
Редактируем данные отправителя
В Google Apps Script есть возможность для письма указать имя отправителя и адрес, на который надо отправлять ответ на письмо. Можно сделать рассылку с ящика на Gmail, а ответы принимать на корпоративную почту. Вот код с примером указания имени отправителя и адреса для ответа:
[jscript]
MailApp.sendEmail(emailAddress, messageSubject,messageText, {"htmlBody":messageHTML, replyTo: "ivanov@example.com", name:"Антон Иванов"});
[/jscript]
Прикрепляем вложения
Для того, чтобы автоматически вкладывать файл в письмо, его необходимо предварительно сохранить на Google Drive и узнать его ID (правой кнопкой мыши кликнуть на файл и выбрать пункт меню «Получить ссылку»).
[jscript]
function sendMails() {
// 5 надо заменить на число адресатов в таблице
var rowsAmount = 5;
// Здесь надо указать тему писем
var messageSubject = "Пресс-релиз";
// Создаем переменную для активного листа
var currentSheet = SpreadsheetApp.getActiveSheet();
// Выделяем диапазон данных и получаем из него данные
var dataRange = currentSheet.getRange(1, 1, rowsAmount, 3);
var data = dataRange.getValues();
// Обходим поочередно ряды в таблице
for (i in data) {
var row = data[i];
// Из первого столбца берем адрес
var emailAddress = row[0];
// Получаем содержимое файла по его ID
var file = DriveApp.getFileById("0ByNftQqMheCPR0s4UndvQlJ6ek0");
// Формируем текст обращения
if(row[2]=="женский")
{
var appeal = "Уважаемая";
}
else
{
var appeal = "Уважаемый";
}
var emailAddress = row[0];
var appealText = appeal + " " + row[1] +"!\n";
var messageText = appealText + "Высылаем Вам пресс-релиз";
var messageHTML = appealText + "Высылаем <i>Вам</i> <b>пресс-релиз</b>";
MailApp.sendEmail(emailAddress, messageSubject, messageText, {"htmlBody":messageHTML,
attachments: [file.getBlob()], replyTo: "chernova@example.com", name:"Антон Иванов"});
}
}
[/jscript]
Настраиваем отложенную отправку писем
Теперь научимся откладывать запуск скрипта на определенное время. Сделать это можно с помощью триггеров. В редакторе скриптов выбрать Ресурсы -> Триггеры текущего проекта и в появившемся окне нажать на ссылку «Добавить новый триггер».

После указываем дату и время выполнения скрипта:

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

Очень удобно запускать рассылку из меню документа. Добавить такую возможность очень легко:
Мы разобрали основные приемы создания автоматизированных рассылок на Google Apps Script. Если у вас есть какие-то вопросы по этой теме, пишите их в комментарии.
Войди и оставь комментарий
Или войди с помощью
Спам :/
@Varian, ну не только спам:-) этими скриптами, к примеру, можно приглашения на мероприятия рассылать или информационные рассылки для сотрудников некой компании/студентов некоего вуза.
Пособие о том как спамить ?
@k0200679, не «пособие О ТОМ как спамить», а «пособие ПО созданию эффективных рассылок»;-)
А есть какое нибудь ограничение на количество получателей в день например?
Хотел сделать рассылку для пользователей своего проекта, там довольно большое количество людей)
@Aleksrims, не более 2000 писем в сутки, если людей больше то надо разбить на несколько частей, написать функции для рассылки писем каждой группе и распланировать их выполнение на несколько дней)
@Ирина Чернова, 2000 в сутки это для всех адресатов или только для gmail адресатов? В правилах написано 2000 (500 внешних).
@Sergey, киньте ссылку, я какие-то другие правила читала(
@Ирина Чернова, __https://support.google.com/a/answer/166852?hl=ru
@Ирина Чернова, Можно как-то в скрипте написать, что после окончания такой-то функции, приступить ко второй через 25 часов?
@Sergey, можно поставить таймер в конец скрипта.
@Ирина Чернова, в каком-то комментарии вы писали про паузу. Я посмотрел, а там максимум, 60 минут или около того.
@Ирина Чернова, т.е. вместо одной таблицы контактов надо создать по количеству групп? Или можно сделать разбивку скриптом? Например – взять всех и отправлять по n-штук с t-интервалом.
@chervonenko, да можно сделать разбивку скриптом. Самый топорный способ:
function sendMails() {
// Выбираем с какой строки начинать рассылку и на какой заканчивать
var startRow=10;
var endRow = 20;
// Здесь надо указать тему писем
var messageSubject = “Пресс-релиз”;
// Создаем переменную для активного листа
var currentSheet = SpreadsheetApp.getActiveSheet();
// Выделяем диапазон данных и получаем из него данные
var dataRange = currentSheet.getRange(startRow, 1, endRow, 2);
var data = dataRange.getValues();
// Обходим поочередно ряды в таблице
for (i in data) {
var row = data[i];
// Из первого столбца берем адрес
var emailAddress = row[0];
// А из второго имя получателя
var messageText = row[1] + “, ” + “высылаем Вам пресс-релиз”;
MailApp.sendEmail(emailAddress, messageSubject, messageText);
}
}
Сделать несколько таких скриптов по интервалам и триггерами разбить их выполнение.
Рассылки через Gmail?
Серьёзно?
Для таких вещей есть Mailchimp и подобные ему сервисы.
@ifthenelse, да, серьезно.
Благодаря языку Google Apps Script возможности для создания рассылок в Gmail гораздо шире, чем у таких сервисов. Ведь их API предназначен только для генерации писем. А на Google Apps Script можно автоматически создавать электронные таблицы, текстовые документы, делать копии файлов на Drive с уникальными именами для каждого отправителя, парсить веб-сайты и еще дофига всего.
Рассылки в Gmail бесплатны, а MailChimp нет)
@Ирина Чернова, зачем мне в рассылке генерирование таблиц и документов? Зачем мне разбираться с программированием, если все необходимые документы для рассылки может подготовить специально обученный человек (текст рассылки кто-то же должен придумать) или CRM-система?
Мне кажется, вы усложняете всё.
У меня в компании рассылки делаются средствами известного продукта известной российской компании: каждый месяц по базе активных клиентов идут персонализированные письма с вложенными PDF отчетных документов и актуальных счетов. Рассылается это всё по нажатию одной кнопки или автоматически в заданное время (раз в месяц).
Информационно-рекламные рассылки идут через “мартышку”. При моих объёмах это не стоит мне ни копейки. Их пишет копирайтер и рассылает либо сразу, либо в заданное время. При этом в “мартышке” можно сверстать красивое письмо, а не рассылать скучный текст.
Вы же предлагаете либо неэффективно работать с рассылками в веб-интерфейсе почты, либо разбираться с программированием на gas, что весьма сомнительное удовольствие.
А если компания например, захочет свалить с почты Google (санкции, блокировки) и перейти, например, на Яндекс или свой почтовый сервер, то все наработки с gas превратятся в тыкву.
Вообще я уверен что для рассылок всё же есть специализированные продукты. Google под это не заточен, поэтому приходится шаманить со скриптами :)
@ifthenelse, это статья явно не для тех у которых в распоряжении есть специально обученный человек и CRM-система:-) Да, для масштабных рассылок Gmail не подходит.
Но миллионы людей в мире используют рассылки в Gmail для частных нужд и нужд микробизнеса) И разбираться тут особо не надо, скрипты очень простые.
И в Google Apps Script тоже можно сверстать красивое письмо на HTML, а не рассылать скучный текст.
Большое спасибо Вам за проявленное внимание к статьей и развернутый комментарий)
@ifthenelse, у нас нет таких людей, поскольку компания очень маленькая. Вам повезло, что есть средства на содержание специального человека и сервиса.
Раньше это называли спамом
@ArnhemNL, ну да с этими скриптами можно спамить) А можно экзаменационные билеты студентам своего потока или приглашения на корпоратив коллегам этими скриптами рассылать, к примеру.
Рекомендуем
Нашли орфографическую ошибку в новости?
Выделите ее мышью и нажмите Ctrl+Enter.