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

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

Продолжаем учиться писать автоматизирующие скрипты на JavaScript и открывать огромные перспективы повышения личной продуктивности. Описанный ниже пример расскажет как с помощью нескольких строчек кода автоматизировать процесс отправки новогодних поздравлений.

Что мы хотим сделать?

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

Куда писать код?

  1. Открыть программу «Редактор скриптов» (Программы -> Утилиты).
    Снимок экрана 2015-10-10 в 21.02.41
  2. В верхнем меню выбрать Файл ->Новый.Снимок экрана 2015-10-10 в 21.08.11

3. На переключателе языков выбрать JavaScript.
Снимок экрана 2015-10-10 в 21.11.37

Как отправить письмо?

Для этого надо ввести в редакторе несколько строчек кода. Значком // отмечены комментарии:

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

И нажать на кнопку запуска скрипта.
Снимок экрана 2015-10-10 в 21.47.00

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

Снимок экрана 2015-10-10 в 21.57.17

Как отправить несколько писем?

Добавляем к коду цикл:

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"}));
}

И вот перед нами три автоматически сгенерированных письма.

Снимок экрана 2015-10-10 в 22.11.57

Ок. А как отправить письма разным получателям?

Добавляем к коду массив с адресами:

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]}));
}
Нажимаем на кнопку запуска скрипта и у нас есть три письма для разных людей.

Снимок экрана 2015-10-10 в 22.21.47

А есть ли более удобный способ записи адресов?

Да. И один из них мы сейчас разберем. Для начала откроем программу Numbers.

Снимок экрана 2015-10-10 в 21.48.08И создадим там таблицы с email адресами и текстами пожеланий, которую сохраним на рабочем столе под именем Contacts.

Снимок экрана 2015-10-10 в 21.55.09

Немного модифицируем наш код:

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()}));
}

Вуаля!

Снимок экрана 2015-10-10 в 23.14.45

P.S. Небольшое примечание для тех, кто пользуется Gmail через браузер. Аналогичную программу можно также легко написать на Google Apps Script.

Предыдущие публикации из цикла «Автоматизация рутины в OS X» вы можете найти по следующим ссылкам:

Что еще смотрят:


✅ Подписывайтесь на нас в Telegram, ВКонтакте, и Яндекс.Дзен.



1 Комментарий

  1. atiamd44x:

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

Добавить комментарий