multithreading - gmail 脚本仅从每个线程的第一封电子邮件中提取

标签 multithreading google-sheets gmail-api

我正在尝试使用使用正则表达式的脚本来解析从 G 邮件消息中提取的数据。使脚本的其余主要功能正常运行,但存在一个相当大的问题。

脚本仅从每个线程的第一条消息返回数据。我希望它从每个线程中的每条消息返回数据,我一直在玩它但到目前为止没有运气。

如有任何帮助,我们将不胜感激。

谢谢!

function processInboxToSheet() {


var start = 0;
var threads = GmailApp.getInboxThreads(start, 100);
var SPREADSHEET_URL =    "https://docs.google.com/spreadsheets/d/1QDg";
var SHEET_NAME = 'Sheet1';
var result = [];


var spreadsheet = SpreadsheetApp.openByUrl(SPREADSHEET_URL);
var sheet = spreadsheet.getSheetByName(SHEET_NAME);

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

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

这是脚本的后半部分:

if (content) {
  var tmp;
  tmp = content.match(/\<\!\-\-\soutRadius\s\s\[*(.+?)\]/);

  var radius = (tmp && tmp[1]) ? tmp[1].trim() : 'Unknown Radius';

  tmp = content.match(/\<\!\-\-\sX\s\s\[*(.+?)\]/);
  var longitude = (tmp && tmp[1]) ? tmp[1].trim() : 'Unknown Latitude';

  tmp = content.match(/\<\!\-\-\sY\s\s\[*(.+?)\]/);
  var latitude = (tmp && tmp[1]) ? tmp[1].trim() : 'Unknown Longitude';

  tmp = content.match(/\The mobile number was located on\s*(.+?)\s/);
  var date = (tmp && tmp[1]) ? tmp[1] : 'Unknown date';

  tmp = content.match(/([\d:]*)\s*GMT/);
  var time = (tmp && tmp[1]) ? tmp[1] : 'Unknown time';

  sheet.appendRow([date, time, longitude, latitude, radius]);

  Utilities.sleep(500);
}
  };

最佳答案

难道你不能也只循环遍历消息吗?

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

  for(var j = 0; j < messages; j++) {
    var content = messages[j].getRawContent();
  }
}

关于multithreading - gmail 脚本仅从每个线程的第一封电子邮件中提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33067693/

相关文章:

c++ - 如何在 C++ 中正确执行线程?

java - 使用 Executors 服务在 Java 中创建固定大小线程池的最佳方式

javascript - 删除 Google Script 中的文件 .setTrashed 'You do not have authorization to perform that action.'

objective-c - native react 并设置 gmail api

ios - 在 GMAIL 中解码电子邮件正文 (ios)

c - 如何检查非阻塞匿名管道是否有数据而不删除它

Python 代理检查器,更改为线程版本

google-sheets - Google Sheets Countif 与 Arrayformula

arrays - 在 Google Sheet 上将多个列堆叠在一起?

android - 从电子邮件 header 解析 JSON