【发布时间】:2017-09-03 15:52:31
【问题描述】:
我正在从事一个研发项目,我在该项目中使用 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 & Time 和 No JVM。我想打印邮件中给出的列和行中的名称和数据。有人可以帮我解决这个问题并告诉我错误是什么以及如何按预期提取数据。提前致谢。
【问题讨论】:
标签: parsing google-apps-script google-sheets gmail