0
我正在研究一個R & D項目,其中使用Linux命令收集我的服務器端統計信息並將其輸出到我的郵件。現在我的計劃是讀取和parse
Gmail
內容,它具有我的服務器數據(如下所示)並將其提取到Google Sheets
。我的Gmail內容如下所示,其中包含行和列中的數據。如何解析Gmail郵件以將數據提取到Google表格
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]);
}
}
}
我的輸出只是打印在谷歌表No Date & Time
和No JVM
。我想打印郵件中給出的列和行中的名稱和數據。有人可以幫助我,告訴我什麼是錯誤的,以及如何像預期一樣提取數據。提前致謝。
感謝您的建議Ed。我有幾個疑問。你能否澄清一下。我在哪裏可以提及主題名稱,以便它可以直接查找相應主題並提取郵件內容。此外,在執行代碼後,我觀察到所有數據都被粘貼在一行中,而不是在第一行結束後進入新行。你能幫我解決這個問題嗎 – Dev
我附上一個共享的電子表格,你可以複製並嘗試。它有一張帶有說明的筆記。當您複製它時,您將成爲所有者,並將獲得您的Gmail。至於單排。該腳本在行尾查找/ n新行以知道將它們分開的位置。您的電子郵件不得包含換行符。最簡單的事情就是將它們添加到您的Linux提要中。爲了測試,您可以發送一封電子郵件,在每行之後一次一個地複製您的線路。 https://docs.google.com/spreadsheets/d/1NAPlj86NGlpjYrWqG7EJdlDUd2zS0DeweqqSQgODx24/edit?usp=sharing –
謝謝埃德。這很有幫助。 – Dev