Javascript Gmail到google工作表解析富文本格式的数据

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

我一直在使用谷歌应用程序的脚本,用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 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()
无法处理此问题,您知道如何更正此问题吗

谢谢你的阅读