Функция скрипта Gmail Apps для отображения содержимого всех черновиков сообщений - PullRequest
1 голос
/ 18 октября 2019

Я ищу сценарий Служб Google для Gmail, в котором будет отображаться содержимое самого последнего черновика сообщения. Пока мой код:

function listDrafts() {
  var drafts = Gmail.Users.Drafts.list('me')
  if (drafts.drafts.length == 0) {
    Logger.log('No draft messages found.');
  } else {
    Logger.log('Drafts:');
    for (var i = 0; i < drafts.drafts.length; i++) {
      var draft = drafts.drafts[i].message.payload.headers[i].value;
      Logger.log('- %s', draft);
    }
  }
}

Однако, я продолжаю получать ошибку при запуске. Цени любую помощь.

1 Ответ

1 голос
/ 18 октября 2019

Из вашего скрипта, когда Gmail API включен в сервисах Advanced Google, я подумал, что в строке var draft = drafts.drafts[i].message.payload.headers[i].value; может возникнуть ошибка, потому что drafts.drafts[i].message.payload возвращает undefined. Если мое понимание правильное, как насчет следующей модификации?

Модифицированный скрипт:

Когда ваш скрипт модифицируется, как насчет следующей модификации?

От:
var draft = drafts.drafts[i].message.payload.headers[i].value;
Кому:
var draft = Gmail.Users.Drafts.get("me", drafts.drafts[i].id).message.payload.headers[i].value;

или

Кому:
var headers = Gmail.Users.Drafts.get("me", drafts.drafts[i].id).message.payload.headers;
for (var j = 0; j < headers.length; j++) {
  Logger.log(headers[j].value)
}

Примечание:

Ссылки:

Если я неправильно понял ваш вопрос, и это не то направление, которое вы хотите, я прошу прощения.

Редактировать:

  • Вы хотите получить письмо из заголовков Gmail.Users.Drafts.

В этой ситуации, как насчет следующей модификации?

Модифицированный скрипт:

From:
var draft = drafts.drafts[i].message.payload.headers[i].value;
To:
var headers = Gmail.Users.Drafts.get("me", drafts.drafts[i].id).message.payload.headers;
for (var j = 0; j < headers.length; j++) {
  var search = ["From", "To"];
  if (search.indexOf(headers[j].name) != -1) {
    Logger.log(headers[j].value)
  }
}
  • Если вы хотите получить значения, кроме «From» и «To», пожалуйста, измените var search = ["From", "To"];
...