Javascript Gmail到google工作表解析富文本格式的数据
我一直在使用谷歌应用程序的脚本,用regex解析gmail数据。邮件在一个特定的gmail标签内阅读,该标签来自一个发件人,如下代码所示:Javascript Gmail到google工作表解析富文本格式的数据,javascript,regex,google-sheets,gmail,Javascript,Regex,Google Sheets,Gmail,我一直在使用谷歌应用程序的脚本,用regex解析gmail数据。邮件在一个特定的gmail标签内阅读,该标签来自一个发件人,如下代码所示: // Adapted from https://gist.github.com/Ferrari/9678772 //https://stackoverflow.com/questions/31345400/extract-info-from-email-body-with-google-scripts function processInbox
// Adapted from https://gist.github.com/Ferrari/9678772
//https://stackoverflow.com/questions/31345400/extract-info-from-email-body-with-google-scripts
function processInboxToSheet() {
// Have to get data separate to avoid google app script limit!
var start = 0;
var label = GmailApp.getUserLabelByName("Any label name here");
var threads = label.getThreads();
var SPREADSHEET_URL = "Any google sheet URL in here ";
var SHEET_NAME = 'Required Sheet tab name here';
var spreadsheet = SpreadsheetApp.openByUrl(SPREADSHEET_URL);
var qs_sheet = spreadsheet.getSheetByName(SHEET_NAME);
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) {
tmp = content.match(/Transaction Reference:\s*([A-Za-z0-9@.,-]+)/);
var TransactionReference = (tmp && tmp[1]) ? tmp[1].trim() : 'No data';
tmp = content.match(/Transaction Date:\s*([A-Za-z0-9@.,-]+)/);
var TransactionDate = (tmp && tmp[1]) ? tmp[1].trim() : 'No data';
tmp = content.match(/Transaction Charges:\s*([A-Za-z0-9@.,-]+)/);
var TransactionCharges = (tmp && tmp[1]) ? tmp[1].trim() : 'No data';
tmp = content.match(/Beneficiary Name:\s*([A-Za-z0-9@.,'-]+\s*[[A-Za-z0-9@.,'-]+)/);
var BeneficiaryName = (tmp && tmp[1]) ? tmp[1].trim() : 'No data';
tmp = content.match(/Exchange Rate:\s*([A-Za-z0-9@.,-]+)/);
var ExchangeRate = (tmp && tmp[1]) ? tmp[1].trim() : 'No data';
tmp = content.match(/Beneficiary Amount:\s*([A-Za-z0-9@.,-]+)/);
var BeneficiaryAmount = (tmp && tmp[1]) ? tmp[1].trim() : 'No data';
tmp = content.match(/Total Amount Debited from your card:\s*([A-Za-z0-9@.,-]+)/);
var SterlingAmount = (tmp && tmp[1]) ? tmp[1].trim() : 'No data';
qs_sheet.appendRow([TransactionReference, TransactionDate, TransactionCharges, BeneficiaryName,ExchangeRate,BeneficiaryAmount,SterlingAmount]);
Utilities.sleep(500);
}
}
};
//改编自https://gist.github.com/Ferrari/9678772
//https://stackoverflow.com/questions/31345400/extract-info-from-email-body-with-google-scripts
函数processInboxToSheet(){
//必须单独获取数据以避免谷歌应用程序脚本限制!
var start=0;
var label=GmailApp.getUserLabelByName(“此处的任何标签名称”);
var threads=label.getThreads();
var SPREADSHEET_URL=“此处的任何谷歌工作表URL”;
var SHEET_NAME='此处需要的工作表选项卡名称';
var spreadsheet=SpreadsheetApp.openByUrl(电子表格URL);
var qs_sheet=电子表格.getSheetByName(工作表名称);
var结果=[];
对于(var i=0;i
在信息开始以富文本格式出现之前,脚本工作正常。通过查看原始源代码,它似乎是:
内容类型:text/html;字符集=utf-8
内容传输编码:base64
我假设函数getPlainBody()
无法处理此问题,您知道如何更正此问题吗
谢谢你的阅读