Pull to refresh

Отчет о непрочитанных письмах через Google Apps Script

Добрый вечер, хабаровчане, начал для себя осваивать google apps script, и первое что мне нужно было, это сделать сбор статистики о непрочитанных письмах с рабочей почты, которая работает в google, так как я не хочу по вечерам держать открытую почту с вкладкой почты.

Хочу поделиться своим трудом с теми, кому так же лень проверять ящик лишний раз)

Чтобы не разбивать куски кода на отдельные блоки с комментариями, я прописал комментарии еще в самом коде.

А для автоматизации, я поставил триггер на выполнение скрипта в период 8-9 часов вечера.


function unreadEmailReport() {
  // Создаем  необходимые переменные для сбора информации о письмах
  var threads = GmailApp.getInboxThreads();
  
  // Первоначальная проверка, если у нас нет непрочитанных писем
  // То и смысла проверять почту нет
  if(GmailApp.getInboxUnreadCount()>0){
    // Создаем  необходимые переменные для сбора информации о письмах
    var messages = threads[0].getMessages();
    var senderEmail = messages[0].getFrom();
    
    // Задаем адрес назначения для собранной статистики
    var emailAddress = "mail@gmail.com" ;
    
    // Создаем переменные для получения текущего времени
    var datenow = new Date ;
    var currentTime = datenow.toLocaleTimeString();
  
    // Создаем переменную, где будет храниться собираемая информация(контент контейнер)
    var output = ContentService.createTextOutput();
  
    // Цикл, где поочередно идет проверка по всем письмам папки "Входящие"
    // на непрочитанные письма, и если они непрочитанны, то считывается
    // отправитель письма(senderEmail)
    // после этого в контент контейнер записывается номер письма, тема, отправитель
    // и делается переход на новую строку
    for (var i = 0; i < threads.length; i++) {
      if(threads[i].isUnread()){
        messages = threads[i].getMessages();
        senderEmail = messages[0].getFrom();
        output.append(i + ".  " + threads[i].getFirstMessageSubject()+"    от:"+ senderEmail + '\n');
      }  
    
    }
  
  // Отправка самого письма, первый параметр адрес назначения
  // Во втором идет запись темы письма и текущего времени
  // В третьем параметре выводится уже сам контент контейнер
 
  GmailApp.sendEmail(emailAddress,"Тема письма  " + currentTime, output.getContent());
  }

}

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.