Автоматизация Gmail: 8 Полезных Скриптов Google для Автоматизации Вашего Gmail

Автоматизация Gmail Обложка

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

Совет: попробуйте другой простой совет для Gmail: настройте автоматическую пересылку в Gmail.

Содержание

    1. Автоудаление электронной почты через X дней
    1. Архивирование всех старых писем
    1. Получение SMS-уведомлений о важных письмах
    1. Создание сводки ваших электронных писем
    1. Сохранение писем в формате PDF в Google Drive
    1. Автоматическая отправка последующих писем
    1. Пометка писем в зависимости от ключевого слова в теме
    1. Пересылка определенных писем на несколько других адресов
  • Часто задаваемые вопросы

1. Автоудаление электронной почты через X дней

Очень часто после прочтения письма мы просто оставляем их в нашем почтовом ящике, независимо от их полезности. Теперь, когда Google установил лимит на место, вы можете захотеть очистить свой почтовый ящик и избавиться от бесполезных писем. Следующий скрипт может проверить письма с меткой “Удалить меня” и удалить их после “X” количества дней.

  1. Убедитесь, что вы вошли в свою учетную запись Google, перейдите на Google Scripts и создайте новый проект.

Автоматизация Gmail Новый проект

  1. Вставьте следующий скрипт и сохраните его. Вы можете изменить количество дней (переменная delayDays), которые проходят перед удалением электронной почты из вашего почтового ящика.
function auto_delete_mails(){  
  var label = GmailApp.getUserLabelByName("Удалить меня");  
if(label == null){  
    GmailApp.createLabel('Удалить меня');  
}  
else{  
    var delayDays =2; // Введите количество дней перед перемещением сообщений в корзину     
    var maxDate =new Date();  
    maxDate.setDate(maxDate.getDate()-delayDays);  
    var threads = label.getThreads();  
for(var i =0; i < threads.length; i++){  
if(threads[i].getLastMessageDate()
  1. Создайте новый триггер для запуска вашего скрипта по расписанию. Откройте “иконку расписания в левом меню -> Триггеры -> Добавить триггер.”

Автоматизация Gmail Триггеры

  1. Настройте параметры триггера на запуск скрипта каждый час (или с любой необходимой частотой), затем прокрутите вниз и нажмите “Сохранить.”

Автоматизация Gmail Добавить триггер

Когда этот скрипт выполнится, он создаст новую метку “Удалить меня” в вашей учетной записи Gmail. Пометьте свои нежелательные письма этой меткой, и они будут удалены после указанного в вашем скрипте количества дней.

Совет: Если ваша электронная почта начинает выходить из-под контроля, ознакомьтесь с нашим обзором SaneBox и посмотрите, может ли он помочь вам справиться с вашей почтой.

2. Архивирование всех старых писем

Если вы хотите вариант, который менее рискован, чем удаление писем, вы можете создать скрипт для архивирования всех своих старых писем, следуя приведенным ниже шагам.

  1. Создайте новый Google-скрипт с следующим кодом:
function archiveOldEmails(){  
  // Получите все потоки в почтовом ящике  
  var threads = GmailApp.getInboxThreads();  
  
  // Пройдите по всем потокам  
for(var i =0; i < threads.length; i++){  
    var thread= threads[i];  
    var messages = thread.getMessages();  
  
    // Пройдите по всем сообщениям в потоке  
for(var j =0; j < messages.length; j++){  
      var message = messages[j];  
      var age =(new Date() - message.getDate()) / (1000 * 60 * 60 * 24);  
  
      // Если сообщение старше 30 дней, архивируйте его  
if(age >30){  
thread.moveToArchive();  
}  
}  
}  
}
  1. Создайте триггер (как показано выше) для запуска скрипта каждый день.

В в выбранное вами время скрипт запустится и переместит письма из вашего почтового ящика в архив. Эти архивированные письма все еще будут доступны в разделе “Все письма”.

Хорошо знать: если вас не интересуют письма в вашем почтовом ящике и вы просто хотите быстро очистить все, этот гайд покажет вам, как пометить все ваши непрочитанные письма как прочитанные и удалить их.

3. Получение SMS-уведомлений о важных письмах

Этот Google скрипт использует функцию SMS Google Календаря для отправки вам SMS, когда вы получаете важное письмо.

  1. Создайте новый Google скрипт с следующим кодом:
function Gmail_send_sms(){  
  var label = GmailApp.getUserLabelByName("Отправить SMS");  
if(label == null){  
    GmailApp.createLabel('Отправить SMS');  
}  
else{  
    var threads = label.getThreads();  
    var now =new Date().getTime();  
for(var i =0; i < threads.length; i++){  
      var message = threads[i].getMessages()[0];  
      var from= message.getFrom();  
      var subject = message.getSubject();  
      CalendarApp.createEvent(subject,new Date(now+60000),new Date(now+60000),{location: from}).addSmsReminder(0);  
}  
    label.removeFromThreads(threads);  
}  
}
  1. Сохраните его и создайте триггер, чтобы он выполнялся каждые пять минут.
  2. Создайте новый фильтр в Gmail, который автоматически добавляет метку “Отправить SMS” к выбранным вами входящим письмам. В Gmail нажмите на значок параметров поиска в верхней строке поиска.

Автоматизация Gmail 2 Параметры поиска

  1. Настройте критерии для SMS-уведомлений, которые сообщат вам о важной электронной почте в вашем почтовом ящике, затем нажмите “Создать фильтр.”

Автоматизация Gmail 2 Фильтры

  1. Проверьте “Применить метку,” выберите “Отправить SMS” и нажмите “Создать фильтр.”

Автоматизация Gmail 2 Фильтр Отправить SMS

Скрипт будет проверять ваш почтовый ящик каждые пять минут. Когда он обнаружит письмо с меткой “Отправить SMS,” он немедленно создаст событие в Google Календаре, что вызовет SMS.

Совет: вы также можете отправлять SMS-сообщения с вашего ПК.

4. Создание сводки ваших электронных писем

Вместо того чтобы читать все свои письма по отдельности, вы можете написать скрипт для создания одной сводной записи о ваших непрочитанных письмах.

  1. Создайте новый Google скрипт с следующим кодом:
function createEmailSummary(){  
    // Найдите непрочитанные письма  
    var threads = GmailApp.search("is:unread");  
    var summary ="Непрочитанные письма:\n";  
for(var i =0; i < threads.length; i++){  
      var messages = threads[i].getMessages();  
for(var j =0; j < messages.length; j++){  
        var message = messages[j];  
        summary += message.getFrom() + ": " + message.getSubject() + "\n";  
}  
}  
  
    // Найдите письма с определенными ключевыми словами в теме  
    var threads = GmailApp.search("subject:(важная встреча)");  
    summary +="\nПисьма с ключевым словом 'важная встреча' в теме:\n";  
for(var i =0; i < threads.length; i++){  
      var messages = threads[i].getMessages();  
for(var j =0; j < messages.length; j++){  
        var message = messages[j];  
        summary += message.getFrom() + ": " + message.getSubject() + "\n";  
}  
}  
  
    // Вы можете добавить больше критериев поиска здесь  
    // ...  
  
    // Отправьте сводку как электронное письмо  
    GmailApp.sendEmail("[email protected]","Сводка электронных писем", summary);  
}
  1. Измените “[email protected]” на ваш адрес электронной почты.
  2. Создайте новый триггер для выполнения скрипта каждый день.

Автоматизация Gmail 4 Пример сводки

Когда скрипт запустится, он отправит вам электронное письмо, в котором будет указано, сколько из каждого типа писем вы еще не прочитали. Скрипт выше является хорошей отправной точкой – он считает количество писем с “важная встреча” в теме. Вы можете настроить скрипт, чтобы он считал по вашим критериям поиска.

5. Сохранение писем в формате PDF в Google Drive

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

  1. Создайте новый Google скрипт с следующим кодом:
function save_Gmail_as_PDF(){  
  // Получите метку "Сохранить как PDF" или создайте ее, если она не существует  
  var label = GmailApp.getUserLabelByName("Сохранить как PDF");    
  if(label == null){  
    label = GmailApp.createLabel('Сохранить как PDF');  
  }  
  
  // Получите потоки с меткой  
  var threads = label.getThreads();    
  for (var i = 0; i < threads.length; i++) {      
    var messages = threads[i].getMessages();  
    var subject = messages[0].getSubject();  
    var bodys = [];  
    // Пройдите по всем сообщениям в потоке  
    for(var j = 0; j < messages.length; j++){    
      var message = messages[j];  
      bodys.push({  
        body: message.getPlainBody(),  
        from: message.getFrom(),  
      });  
      var attachments  = message.getAttachments();  
      var temp_attach = message.getAttachments();  
      if(temp_attach.length > 0){  
        for(var k =0; k < temp_attach.length; k++){  
          attachments.push(temp_attach[k]);  
        }  
      }  
    }  
    // Создайте документ Google Docs из тела сообщения  
    var bodyDoc = DocumentApp.create(subject);  
    var bodyDocId = bodyDoc.getId();  
    var bodyDocFile = DriveApp.getFileById(bodyDocId);  
    var bodyDocBody = bodyDoc.getBody();  
    bodyDocBody.setText(bodys.map(obj => `От: ${obj.from}\n${obj.body}`).join('\n\n'));  
    bodyDoc.saveAndClose();  
  
    // Преобразовать документ Google Docs в PDF  
    var blob = bodyDocFile.getAs('application/pdf');  
    var pdfFile = DriveApp.createFile(blob);  
  
    // Если есть вложения  
    if(attachments.length > 0){  
      // Создайте папку в Drive с темой сообщения  
      var folder = DriveApp.createFolder(subject);  
      for (var j = 0; j < attachments.length; j++) {  
        folder.createFile(attachments[j]);  
      }  
      // Добавьте PDF-файл тела сообщения в папку  
      folder.createFile(pdfFile);  
    }  
    // Удалите документ Google Docs из Google Drive  
    DriveApp.getFileById(bodyDocId).setTrashed(true);  
    // Удалите метку из потока  
    label.removeFromThread(threads[i]);  
  }  
}
  1. Сохраните его и установите триггер, чтобы он выполнялся с установленным интервалом.

Автоматизация Gmail 5 Сохраненное письмо PDF

Когда вы захотите сохранить письмо и его вложения в Google Drive, просто отметьте его меткой “Сохранить в PDF”. Тело каждого письма и отправитель в каждом потоке будут показаны в порядке, начиная с самого старого.

Хорошо знать: не уверены, сколько файлов у вас в папке Google Drive? Этот гайд покажет вам, как это выяснить.

6. Автоматическая отправка последующих писем

Вы не всегда получаете быстрые ответы на свои письма. Чтобы справиться с этой проблемой, вы можете отправить последующее письмо, чтобы напомнить получателям писем. Вместо того, чтобы писать каждое последующее письмо вручную, вы можете отправлять их автоматически с помощью скрипта!

  1. Создайте новый Google скрипт с следующим кодом:
function sendFollowupEmails(){  
  const startDate =new Date('2023-01-01');  
  
  const daysAgo =3;  
  var dateInPast =new Date();  
  dateInPast.setDate(dateInPast.getDate() - daysAgo);  
  
  var threads = GmailApp.search("is:sent before:" + dateInPast.toLocaleDateString() + " after:" + startDate.toLocaleDateString());  
  
for(var i =0; i < threads.length; i++){  
    var conversation = threads[i];  
  
    var foundResponse = false;  
    // Если в отправленном потоке больше 1 письма, нам не нужно отправлять последующее  
    // потому что мы уже отправили последующее, либо они ответили.  
    if (conversation.getMessages().length > 1) {  
      foundResponse = true;  
    }  
  
    if (!foundResponse) {  
      var body = "Привет, я просто хотел напомнить о своем предыдущем письме. Если не получу ответ, буду предполагать, что вы не заинтересованы. \n\nС наилучшими пожеланиями,\n[Ваше имя]";  
      conversation.replyAll(body);  
    }  
  }  
}
  1. Настройте несколько вещей в этом скрипте:
  • Измените startDate на более близкую к настоящему дате, чтобы не поднимать очень старые потоки.
  • Измените daysAgo, чтобы настроить, насколько старым должно быть письмо до отправки последующего.
  • Измените [Ваше имя] на ваше имя.
  1. Сохраните его и установите триггер на запуск каждые семь дней.

Продолжайте писать письма как обычно, и скрипт автоматически будет обрабатывать последующие письма.

7. Пометка писем в зависимости от ключевого слова в теме

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

  1. Создайте новый Google скрипт с следующим кодом:
function categorizeEmails(){  
  const emailsToGet =50;  
  var keywords ={  
"promo": "Акции",  
"offer": "Акции",  
"discount": "Акции",  
"newsletter": "Рассылки",  
"action": "Сделать",  
"required": "Сделать",  
"shipped": "Заказы",  
"delivered": "Заказы",  
"receipt": "Заказы",  
"invoice": "Заказы"  
};  
  
  var threads = GmailApp.getInboxThreads(0, emailsToGet);  
  
for(var i =0; i < threads.length; i++){  
    var subject = threads[i].getFirstMessageSubject().toLowerCase();  
    var labels = GmailApp.getUserLabels();  
    var foundLabel = false;  
  
for(var keyword in keywords){  
if(subject.indexOf(keyword)!== -1){  
for(var j =0; j < labels.length; j++){  
if(labels[j].getName()=== keywords[keyword]){  
            threads[i].addLabel(labels[j]);  
            foundLabel = true;  
break;  
}  
}  
  
if(!foundLabel){  
          GmailApp.createLabel(keywords[keyword]);  
          threads[i].addLabel(GmailApp.getUserLabelByName(keywords[keyword]));  
}  
  
break;  
}  
}  
}  
}
  1. Вы можете настроить количество писем, на которые влияет переменная emailsToGet, или ключевые слова и метки с помощью переменной keywords.
  2. Сохраните скрипт и установите триггер на запуск каждые несколько минут или часов.

Автоматизация Gmail 7 Письма, помеченные по теме

Это позволяет вам быть в курсе событий, просматривая только письма с определенной меткой. Этот скрипт хорошо работает с большинством ваших писем, избавляя вас от необходимости просто удалять их.

Совет: настройте несколько подписей в Gmail, чтобы быстро переключаться между ними для разных аудиторий.

8. Пересылка определенных писем на несколько других адресов

Хотя Gmail имеет встроенный способ пересылки почты на другой адрес, он не может легко пересылать письма с определенными критериями на несколько адресов, но этот скрипт может.

  1. Создайте новый скрипт с следующим кодом:
function emailForwarding(){  
  const emailsToGet =50;  
  var criteria =[  
{  
      sender: "[email protected]",  
      subjectContains: "invoice",  
      forwardTo: ["[email protected]","[email protected]"]  
},  
{  
      sender: "[email protected]",  
      subjectContains: "urgent",  
      forwardTo: ["[email protected]","[email protected]"]  
}  
];  
  
  var label = GmailApp.getUserLabelByName("Пересланные");  
if(!label){  
    label = GmailApp.createLabel("Пересланные");  
}  
  
  var threads = GmailApp.search("is:inbox",0, emailsToGet);  
for(var i =0; i < threads.length; i++){  
    var messages = threads[i].getMessages();  
    console.log('идентификатор потока:', threads[i].getId());  
for(var j =0; j < messages.length; j++){  
  
      var message = messages[j];  
      var sender = message.getFrom();  
      var subject = message.getSubject().toLowerCase();  
      console.log('отправитель', sender,'тема', subject);  
for(var k =0; k < criteria.length; k++){  
        var rule = criteria[k];  
if(sender.indexOf(rule.sender)!= -1 && subject.indexOf(rule.subjectContains)!= -1){  
          var recipient = rule.forwardTo.join(",");  
          GmailApp.sendEmail(recipient, subject, message.getPlainBody(),{cc: sender});  
          threads[i].addLabel(label);  
}  
}  
}  
}  
}
  1. Настройте критерии по мере необходимости.
  2. Создайте триггер, который будет запускать скрипт каждые несколько минут или часов.

Ваш Gmail автоматически будет пересылать письма, которые соответствуют вашим критериям, на два и более адресов электронной почты.

Хорошо знать: Gmail имеет встроенный способ автоматического ответа на письма, если вы в отпуске или вне офиса.

Часто задаваемые вопросы

Является ли Google Apps Script бесплатным для использования?

Да, Google Apps Script является бесплатным для использования, пока у вас есть учетная запись Gmail. Однако есть множество квот и ограничений на ваше использование. Google может изменять их в любое время, но на момент написания они включают почти 40 функций, таких как созданные документы, чтение/запись электронной почты, созданные таблицы и общее время работы триггеров. Бесплатные аккаунты имеют очень низкий лимит, в то время как Google Workspace имеет гораздо более высокий лимит.

Могу ли я использовать Google Apps Script для доступа к данным из других сервисов?

Да, Google Apps Script не ограничивается работой с Google-сервисами. Вы можете получать данные из внешних не-Google-сервисов в Интернете (например, API Pokémon) с помощью встроенных классов, таких как UrlFetchApp следующим образом:

var response = UrlFetchApp.fetch("https://pokeapi.co/api/v2/pokemon/ditto"); Logger.log(response.getContentText()); // Все детали Ditto будут записаны

Что мне делать, если я получаю ошибки в своем Google Apps Script?

Вы можете отладить свой код, чтобы идентифицировать и исправить ошибку. К счастью, Google Apps Script имеет встроенный отладчик, который вы можете использовать для устранения неполадок в вашем коде. Чтобы использовать его, просто откройте редактор скриптов и нажмите “Отладка”. Оттуда вы можете установить точки останова, проходить через ваш код и проверять переменные, чтобы помочь выявить любые проблемы.

Кредит изображения: Pexels. Все скриншоты предоставлены Брендоном Ли.