Автоматизация рутины в OS X. Урок 3. Рассылаем спам

Продолжаем учиться писать автоматизирующие скрипты на JavaScript и открывать огромные перспективы повышения личной продуктивности. Описанный ниже пример расскажет как с помощью нескольких строчек кода автоматизировать процесс отправки новогодних поздравлений.
Что мы хотим сделать?
Написать скрипт, который будет отправлять поздравления списку адресатов, вставляя в письма тексты пожеланий из электронной таблицы.
Куда писать код?
- Открыть программу «Редактор скриптов» (Программы -> Утилиты).

- В верхнем меню выбрать Файл ->Новый.

3. На переключателе языков выбрать JavaScript.

Как отправить письмо?
Для этого надо ввести в редакторе несколько строчек кода. Значком // отмечены комментарии:
//Даем краткое имя приложению Mail
Mail = Application("Mail");
//Создаем новое сообщение
Message = Mail.OutgoingMessage().make();
//Заполняем текст письма
Message.content = "Удачи и чудес!";
//Заполняем тему письма
Message.subject = "С Новым годом!";
//Делаем сообщение видимым пользователю
Message.visible = true;
//Добавляем адресата
Message.toRecipients.push(Mail.Recipient({address: "irairache@gmail.com"}));И нажать на кнопку запуска скрипта.

Если все сделано правильно, то откроется приложение Mail и появится автоматически заполненная форма для отправки письма.

Как отправить несколько писем?
Добавляем к коду цикл:
Mail = Application("Mail");
for (i=1;i<=3;i++)
{
Message = Mail.OutgoingMessage().make();
Message.content = "Удачи и чудес!";
Message.subject = "С Новым годом!";
Message.visible = true;
Message.toRecipients.push(Mail.Recipient({address: "irairache@gmail.com"}));
}И вот перед нами три автоматически сгенерированных письма.

Ок. А как отправить письма разным получателям?
Добавляем к коду массив с адресами:
Mail = Application(«Mail»);
// Создаем пустой массив var recipients= new Array();
//Кладем в 1, 2 и 3 элемент массива почтовые адреса recipients[1]=»irarache@gmail.com»; recipients[2]=»somemen@example.com»; recipients[3]=»othermen@example.com»;
// Создаем три письма for (i=1;i<=3;i++) { Message = Mail.OutgoingMessage().make(); Message.content = «Удачи и чудес!»; Message.subject = «С Новым годом!»; Message.visible = true;
// Параметру address присваиваем динамическое значение — элемент массива recipients, соответствующий номеру итерации цикла.
Message.toRecipients.push(Mail.Recipient({address: recipients[i]}));
}
Нажимаем на кнопку запуска скрипта и у нас есть три письма для разных людей.

А есть ли более удобный способ записи адресов?
Да. И один из них мы сейчас разберем. Для начала откроем программу Numbers.
И создадим там таблицы с email адресами и текстами пожеланий, которую сохраним на рабочем столе под именем Contacts.

Немного модифицируем наш код:
Mail = Application("Mail");
//Объявляем короткое имя для приложения Numbers
Numbers = Application("Numbers");
//Кладем в переменную путь к файлу
var path = Path("/Users/irina/Desktop/Contacts.numbers")
//Кладем в другую переменную открытый файл
var doc = Numbers.open(path);
//Кладем в переменную первую таблицу на первом листе
var sheet = doc.sheets[0];
var table = sheet.tables[0];
for (i=1;i<=3;i++)
{
Message = Mail.OutgoingMessage().make();
//Кладем в переменную значение ячейки с пожеланием
var cellText = table.cells["D"+i];
//Заполняем текст письма значением ячейки
Message.content = cellText.value();
Message.subject = "С Новым годом!";
Message.visible = true;
//Кладем в переменную ячейку с адресом и заполняем ее значение поле «Кому»
var cellAdress = table.cells["C"+i];
Message.toRecipients.push(Mail.Recipient({address: cellAdress.value()}));
}Вуаля!

P.S. Небольшое примечание для тех, кто пользуется Gmail через браузер. Аналогичную программу можно также легко написать на Google Apps Script.
Предыдущие публикации из цикла «Автоматизация рутины в OS X» вы можете найти по следующим ссылкам:
- Автоматизация рутины в OS X. Урок 1. Пакетная обработка изображений
- Автоматизация рутины в OS X. Урок 2. Генерация слайдов для презентаций
Что еще смотрят:
- iPhone SE или 6 — какой выбрать
- Как активировать новый айфон
- Как скинуть фото с компьютера на iPhone без iTunes
✅ Подписывайтесь на нас в Telegram, Max, ВКонтакте, и Яндекс.Дзен.

А как сделать так что б отправляло??