Извлечение адреса электронной почты и имени из переадресованных писем - PullRequest
1 голос
/ 02 октября 2019

Я пытаюсь использовать Google Script для извлечения адреса электронной почты и имени из переадресованных писем, которые я подал под определенным ярлыком.

Письма выглядят так:

От:Персона A отправлено: воскресенье, 22 сентября 2019 г. 20:00. Кому: Другое, Электронная почта Тема: Переадресованная электронная почта

ТЕЛО

Все они были перенаправлены в эту конкретную папку входящих сообщений. Поэтому в заголовках фактически указан мой другой адрес электронной почты, с которого я переадресовал.

Я отсортировал более 2000 электронных писем, и теперь для каждого из ярлыков я хочу извлечь имя отправителя (Человек А) и его адрес электронной почты. (person@gmail.com) в электронной таблице. Предпочтительно, чтобы я мог иметь имя и фамилию в отдельных ячейках (например, Персона | A | адрес электронной почты)

Код, который у меня пока есть, приведен ниже:

function processInboxToSheet() {

  // Have to get data separate to avoid google app script limit!

  var start = 0;
  var label = GmailApp.getUserLabelByName("LABEL");
  var threads = label.getThreads();

  var sheet = SpreadsheetApp.getActiveSheet();
  var result = [];



  for (var i = 0; i < threads.length; i++) {
    var messages = threads[i].getMessages();

    var content = messages[0].getPlainBody();

    // implement your own parsing rule inside
    if (content) {
      var tmp;
      tmp = content.match(/From:\n([A-Za-z0-9\s]+)(\r?\n)/);
      var name = (tmp && tmp[1]) ? tmp[1].trim() : 'No name';

      tmp = content.match(/<\n([A-Za-z0-9@.]+)/);
      var email = (tmp && tmp[1]) ? tmp[1].trim() : 'No email';

      sheet.appendRow([name, email]);

      Utilities.sleep(500);
    }
  }
};

Я получаю только Нетname и No email в качестве вывода, поэтому что-то не совсем работает в коде. Буду признателен за вашу помощь.

1 Ответ

0 голосов
/ 02 октября 2019

Вы анализируете простое тело, оно не содержит ни туда, ни из. Он содержит только тело сообщения. В API есть методы getTo() и getFrom(), которые содержат то, что вы хотите проанализировать. См. API для GmailMessage для получения более подробной информации.

...