4 лайфхака Gmail и Google Apps Script, которые можно попробовать прямо сейчас

Как автоматизировать процессы GMail, даже не зная ничего про программирование.

Google Apps Script —  это усеченная версия JavaScript дополненная классами и методами для работы с сервисами Google. Для Gmail и Google Документов этот язык служит тем же, чем Visual Basic for Application для Outlook, Word, Excel и PowerPoint. Эта статья первая в цикле рецептов для решения повседневных проблем. Фишки, описанные ниже, внедряются за считанные минуты и смогут сэкономить ваше личное время несчетное число раз. Чтобы применить на практике информацию из этой статью не нужно знать ни Google Apps Script, ни даже JavaScript. Достаточно четко следовать инструкциям.

Как пользоваться инструкциями

  1. Заходим на Google Docs
  2. Авторизируемся под своим аккаунтом;
  3. В соседней вкладке открываем Gmail и убеждаемся, что выбрали нужный почтовый ящик;
  4. Создаем новую электронную таблицу;
  5. Выбираем пункт меню ИнструментыРедактор скриптов. В результате должно открыться вот такое окно: Редактор-скриптов
  6. Вставляем исходный код в редактор скриптов;
  7. Редактируем его в соответствии с комментариями;
  8. Нажимаем кнопку «Запустить» на панели инструментов;
  9. Если перед выполнением скрипт попросит авторизации и разрешений на действия, соглашаться

Организуем групповую рассылку;

Существует множество онлайн сервисов для организации групповых рассылок. Их бесплатный функционал зачастую весьма ограничен, в некоторой степени рискованно разрешать какому-то левому сайта отсылать почте от своего имени и быстрее будет воспользоваться Google Apps Script.

Подготовка:

  1. В первый столбец заносим емейлы получателей.  Пример: «katz@gmail.com»;
  2. Во второй столбец заносим обращения к получателям получателей. Пример: «Анатолий Катц»;

Код:

function groupDelivery() {
  // Число 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);
    }
}

Warnings: очень внимательно проверьте адреса и имена получателей и проследите чтобы список начинался с ячейки A1.

Отвечаем на все письма за один прием;

Когда человек уходит в отпуск, то он настраивает автоответ и всем, кто пишет ему сразу приходит: «Я на море, ждите ответа 15 числа».  Но бывает ситуации, когда нет возможности отвечать на почту некоторое время, автоответчик предварительно не был настроен и сотни писем ждут своей очереди. Как не умереть от стресса вызванного десятками часов непрерывного ответа на почту и не обидеть своих коллег?   Можно скриптом за пару минут отправить им всем письмо: «Извините, у меня форс-мажор, несколько дней был в отлучке. Внимательно ознакомлюсь с Вашим письмом и отвечу в ближайшую неделю.  Если дело срочное, позвоните мне пожалуйста».

Код:

function autoReply() { 
  // Здесь надо указать количество сообщений для ответа, не забыв вычесть из него единицу
  amountMessageforReply=1;
  // Здесь должен быть красивый вежливый текст
  replyText="Был в отпуске. Сорри. Скоро отпишусь. Если срочняк, то набери."; 
  var threads = GmailApp.getInboxThreads(0, amountMessageforReply);
  for (var i = 0; i < threads.length; i++) {
     threads[i].reply(replyText);
  }
}

Warnings: подумайте о том, всем ли корреспондентам корректно посылать составленный вами текст автоответа. Не стоит ли немного модифицировать скрипт и исключить некоторых адресатов из рассылки?

Собираем вложения в папку на Google Drive;

Многие люди хранят в почте море важных файлов: фотографии, образцы документов,   заполненные анкеты, статьи и т.д.  Разобрать эти авгиевы конюшни руками выше сил человека с нормальным уровнем лени. Но можно воспользоваться простейшим скриптом.  Он соберет все вложения из писем в папку на Google Drive, которую потом можно перенести к себе на компьютер и молниеносно находить нужные файлы с помощью Spotlight.

Код;

function saveToGoogleDrive() {
   var driveFolder  = "Папка для вложений"; // Здесь надо указать имя папки куда сохранять вложения
   amountMail = 1 ; // Количество писем из которых будем забирать вложения
   var threads = GmailApp.getInboxThreads(0, amountMail);
   var folder = DriveApp.getFoldersByName(driveFolder);
   if (folder.hasNext()) {
      folder = folder.next();
   } else {
      folder = DriveApp.createFolder(driveFolder);
    }
   for (var x=0; x<threads.length; x++) {
      var message = threads[x].getMessages()[0];
      var att    = message.getAttachments();
    for (var z=0; z<att.length; z++) {
      file = folder.createFile(att[z]);
    }
  }
}

Warning: проконтролируйте чтобы у вас было достаточно места на Google Диске. В соответствии с располагаемым свободным пространством надо выбирать число писем для обработки.

Собираем письма от одного отправителя в текстовый файл;

Иногда переписка с человеком растягивается на несколько десятков или сотен писем, которые разбиты по разным цепочкам тем.  И свести смысловые концы с концами в такой ситуации бывает трудоемко.  Особенно когда читаешь переписку имевшую место быть некоторое время назад. В этой ситуации поможет скрипт, собирающий все интересующие письма в текстовый файл, который можно обозреть единым взором (а не открывая письмо за письмом) и быстро найти нужную информацию.

Код:

function writeToFile() {
  var doc = DocumentApp.create('Переписка'); // Новый файл появится в корневой папке Google диска
  var senderAdress = "admin@example.com"; // Адрес, переписку с которым надо сохранить
  var finalText = "";
  var body = doc.getBody();
  var threads = GmailApp.search(senderAdress);
  for (var x=0; x<threads.length; x++) {
      var messages = threads[x].getMessages();
      for (i=0;i<=messages.length-1;i++) {
          finalText=finalText + messages[i].getSubject() + messages[i].getPlainBody() + "";
       }  
     body.appendParagraph(finalText);
    }
}

Warning: некоторые личности имеют привычку общаться сразу с нескольких адресов, в лучшем случае с личного и рабочего:-) Для таких ситуаций надо немного переписать скрипт или запустить его несколько раз.

©  iphones.ru