2016-03-14 1 views
0

Я использую сценарий на основе этого here, чтобы автоматически архивировать письма старше 7 дней, которые не помечены. Помеченные сообщения остаются в папке «Входящие» до тех пор, пока не будут устранены, и в этот момент электронные письма старше 7 дней соответствуют правилам для архивирования.Сценарий Gmail: Архив электронной почты от людей, не входящих в мой список контактов, и старше 2 дней

Мой фактический сценарий:

function GmailArchive() { 
    var batchSize = 100 // Process up to 100 threads at once 
    var threads = GmailApp.search('label:"inbox" -label:"starred" older_than:7d'); 
    for (j = 0; j < threads.length; j+=batchSize) { 
    GmailApp.moveThreadsToArchive(threads.slice(j, j+batchSize)); 
    } 
} 

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

Мои мысли до сих пор:

Проверка против getTo()getCc() или getBcc() полей, если более чем один адрес в любом из этих полей в архиве, если более 2-х дней.

var thread = GmailApp.getInboxThreads(0,1)[0]; // get first thread in inbox 
var message = thread.getMessages()[0]; // get first message 
Logger.log(message.getTo()); // log the recipient of message 

Я не уверен, где это происходит, Logger.log? Будет ли это файл или консоль? Как я могу захватить возврат и использовать его в файле if> 1, а затем продолжить до следующего сообщения/потока и т. Д. До тех пор, пока не закончится сообщение/потоки и т. Д. И не выйдет.

У меня нет формального обучения в кодировании, извинения. Справочный материал, который я ищу, это here.

ответ

1

Для начала я предлагаю вам сначала проверить все Google Apps Script documentation, поэтому все будет понятнее.

Logger.log будет консольным сообщением, если вы используете класс Logger из API скриптов приложений. На большинстве языков программирования вы можете захватывать возвращаемые значения методов, назначая вызовы функций переменной или просто используя вызовы функций в ваших операциях.

С использованием API-интерфейса Gmail и API-интерфейса для контактов подход, который, как я думал, состоит в том, чтобы получить все ваши почтовые ящики, содержащие более 1-го адреса электронной почты. Петля на каждое электронное письмо затем загрузите адрес отправителя по адресу getFrom(), затем воспользуйтесь электронной почтой, полученной по адресу getContactsByEmailAddress(). Если он возвращает значение null, то архивируйте его.

var threads = GmailApp.search('label:"inbox" older_than:1d'); 
    for (j = 0; j < threads.length; j+=batchSize) { 
    /* If (getContactsByEmailAddress('address from getFrom()') = null) 
    GmailApp.moveThreadsToArchive(threads.slice(j, j+batchSize)) */ 
    } 
+0

Я должен начать с основ и научиться программировать. Ускорение учебников по снарядам Bash делает меня ужасно неадекватно подготовленным, чтобы понять что-то подобное. – adamlogan

Смежные вопросы