выберите одно письмо вместо всей цепочки - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть скрипт, который переносит мое электронное письмо из Gmail в ячейку google-листа, в основном я ищу помеченное письмо и в конце добавляю его. Я запускаю его (оно не должно появляться при следующем запуске). время). Однако у меня возникла проблема, связанная с тем, что она содержит всю цепочку писем. Для пояснения: в моих настройках Gmail установлено «Выключен режим просмотра беседы», и вот как я вижу это в своей папке входящих сообщений, каждое сообщение отдельно, но похоже, что в API Gmail он все еще сохраняется как один длинный поток ... Как я могу импортировать только одно сообщение без всей цепочки? (Поток - это не реальный разговор, это просто автоматическая электронная почта от того же отправителя и той же темы, поэтому Gmail рассматривает его как поток, поэтому, если есть способ остановить это, это также поможет.)

Мой код указан ниже.

var SEARCH_QUERY = "label:web is:unread to:me is:starred";

function getEmails_(q) {
var emails = [];
emails.length = 0;
var threads = GmailApp.search(q);
for (var i in threads) {
var msgs = threads[i].getMessages();
for (var j in msgs) {
emails.push([msgs[j].getPlainBody().replace(/<.*?>/g, '\n')
.replace(/^\s*\n/gm, '').replace(/^\s*/gm, '').replace(/\s*\n/gm, '\n')]);

msgs[j].unstar().refresh();
}
}
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.getActiveSpreadsheet().getSheetByName('Web 
Email'), array2d);
}
}

1 Ответ

0 голосов
/ 19 апреля 2019

Ознакомьтесь с документацией GmailApp - она ​​содержит объяснение доступных методов и типа возвращаемого объекта.Вы пытаетесь получить объект GmailMessage, но GmailApp.search () возвращает массив объектов GmailThread.Я не верю, что можно искать в Gmail конкретное сообщение - как показывает ваш код, вы можете получить массив потоков, возвращаемых поиском, и перебрать их, используя getMessages () для получения определенных сообщений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...