Что нужно добавить в этот скрипт Google, чтобы пометить письма как прочитанные
Я смотрю, как пометить сообщения, прочитанные после выполнения этого скрипта. Я прочитал GmailApp класса, но я слишком много новичков, чтобы знать, что делать.
Этот сценарий был бы успешным для меня, если бы он вытащил данные электронной почты на листы Google на основе критериев поиска, а затем пометил эти сообщения как прочитанные. В настоящее время, это только потянет электронные письма в листы Google.
Спасибо за ваше время.
var SEARCH_QUERY = "label:aggieworks is:unread to:me subject:*WO:*";
// Credit: https://gist.github.com/oshliaer/70e04a67f1f5fd96a708
function getEmails_(q) {
var emails = [];
var threads = GmailApp.search(q);
for (var i in threads) {
var msgs = threads[i].getMessages();
for (var j in msgs) {
emails.push([msgs[j].getBody().replace(/<.*?>/g, '\n')
.replace(/^\s*\n/gm, '').replace(/^\s*/gm, '').replace(/\s*\n/gm, '\n')
]);
}
}
return emails;
}
function appendData_(sheet, array2d) {
sheet.getRange(sheet.getLastRow() + 1, 1, array2d.length, array2d[0].length).setValues(array2d);
}
function saveEmails() {
var array2d = getEmails_(SEARCH_QUERY);
if (array2d) {
appendData_(SpreadsheetApp.getActiveSheet(), array2d);
}
}
3 ответа
Предполагая, что функция работает так, как у вас есть. Это должно пометить сообщения как прочитанные.
function getEmails_(q)
{
var emails = [];
var threads = GmailApp.search(q);
for (var i in threads) {
var msgs = threads[i].getMessages();
for (var j in msgs)
{
emails.push([msgs[j].getBody().replace(/<.*?>/g, '\n')
.replace(/^\s*\n/gm, '').replace(/^\s*/gm, '').replace(/\s*\n/gm, '\n')]);
msgs[j].markRead();
}
}
return emails;
}
Причина ошибки длины в том, что array2d
это ноль. appendData_
Функция не работает.
array2d
содержимое должно быть оценено до appendData_
функция выполняется в if()
заявление.
Пока не знаю как это будет выглядеть
Вот обновленный код, который выдает ошибку.
Ошибка типа: невозможно прочитать свойство "длина" из неопределенного. (строка 21, файл "GetEmailReceve")
var SEARCH_QUERY = "label:aggieworks is:unread";
// Credit: https://gist.github.com/oshliaer/70e04a67f1f5fd96a708
function getEmails_(q) {
var emails = [];
var threads = GmailApp.search(q);
for (var i in threads) {
var msgs = threads[i].getMessages();
for (var j in msgs) {
emails.push([msgs[j].getBody().replace(/<.*?>/g, '\n')
.replace(/^\s*\n/gm, '').replace(/^\s*/gm, '').replace(/\s*\n/gm, '\n')
]);
}
}
return emails;
}
function appendData_(sheet, array2d) {
sheet.getRange(sheet.getLastRow() + 1, 1, array2d.length, array2d[0].length).setValues(array2d);
}
function saveEmails() {
var array2d = getEmails_(SEARCH_QUERY);
if (array2d) {
appendData_(SpreadsheetApp.getActiveSheet(), array2d);
}
}
function getEmails_(q)
{
var emails = [];
var threads = GmailApp.search(q);
for (var i in threads) {
var msgs = threads[i].getMessages();
for (var j in msgs)
{
emails.push([msgs[j].getBody().replace(/<.*?>/g, '\n')
.replace(/^\s*\n/gm, '').replace(/^\s*/gm, '').replace(/\s*\n/gm, '\n')]);
msgs[j].markRead();
}
}
return emails;
}