Open
Description
function example(){
var data = messageExtractor_('from:google.com is:inbox is:unread',
function(th, i, data){
data.push(['Тема', th.getFirstMessageSubject(), '', Utilities.formatString('https://mail.google.com/mail/u/0/#/%s', th.getId())]);
if(/ZDM/.test(th.getFirstMessageSubject())) return true;
}, function(msg, i, data){
if(msg.isUnread())
data.push(['Сообщение', '', msg.getPlainBody(), Utilities.formatString('https://mail.google.com/mail/u/0/#/%s', msg.getId())]);
}, []);
setValuesToBase_(data);
}
function messageExtractor_(q, threadCallback, messageCallback, data) {
threadCallback = getFn_(threadCallback);
messageCallback = getFn_(messageCallback);
var threads = GmailApp.search(q);
for (var i = 0; i < threads.length; i++) {
var __ = threadCallback(threads[i], i, data);
if(__ === true) continue;
var messages = threads[i].getMessages();
for(var j = 0; j < messages.length; j++){
messageCallback(messages[j], j, data);
}
}
return data;
}
function setValuesToBase_(values){
SpreadsheetApp.openById('1p9WFS0LXUX9VMojEjq8LktXzD3mXhEDHqIhPP177Bn0')
.getSheets()[0]
.clearContents()
.getRange(1, 1, values.length, values[0].length)
.setValues(values);
}
function getFn_(fn){
return typeof fn === 'function' ? fn: function(){};
}