如何解析Gmail邮件以将数据提取到Google表格

时间:2017-09-03 15:52:32

标签: parsing google-apps-script google-sheets gmail

我正在研究一个R& D项目,我使用Linux命令收集服务器端统计信息并将其输出到我的邮件中。现在,我的计划是阅读parse Gmail内容,其中包含我的服务器数据(如下所示)并将其解压缩到Google Sheets。我的Gmail内容如下所示,其中包含行和列中的数据。

Date&Time JVM PID CPU MEM FGC
03-09-2017-09-08-PM abc01_xzy01 12345 1.2% 2.75 3
03-09-2017-09-08-PM abc01_xzy01 12345 3.5% 2.71 4
03-09-2017-09-08-PM abc01_xzy01 12345 4.6% 2.79 5

我的想法是以完全相同的方式进入Google Sheet。我正在使用下面的代码,但它无法读取内容。我在想它是否与使用的RegExp有关。您能告诉我代码必须在if语句中编写的确切内容。

function parseEmailMessages(start) {

  start = start || 0;

  var threads = GmailApp.getInboxThreads(start, 100);
  var sheet = SpreadsheetApp.getActiveSheet();

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

    var tmp,
      message = threads[i].getMessages()[0],
     // subject = message.getSubject(),
     subject = "SERVER TEST REPORT",
      content = message.getPlainBody();

    if (content) {

      tmp = content.match(/Date&Time:\s*([A-Za-z0-9\s]+)(\r?\n)/);
      var username = (tmp && tmp[1]) ? tmp[1].trim() : 'No Date & Time';

      tmp = content.match(/JVM:\s*([A-Za-z0-9\s]+)(\r?\n)/);
      var username = (tmp && tmp[1]) ? tmp[1].trim() : 'No JVM';

      sheet.appendRow([username, email, subject, comment]);

    } 

  } 
}

我的输出只会在Google表格中打印No Date & TimeNo JVM。我想打印邮件中给出的列和行中的名称和数据。有人可以帮我解决这个问题并告诉我错误是什么以及如何像预期的那样提取数据。提前谢谢。

1 个答案:

答案 0 :(得分:1)

如果您的电子邮件中的所有内容都是您在上面发布的内容,则会将其放入您的电子表格中。更改电子邮件主题和工作表名称以满足您的需求。

QT_PATH