使用Apps脚本从GMail解析HTML

时间:2018-07-13 14:31:20

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

我想构建一个脚本,该脚本将使用其原始HTML来获取电子邮件,使用XML服务解析HTML并提取各种数据。

我的问题是,当您使用getRawContent()浏览HTML时,HTML以带引号的可打印格式显示(例如<table align=3D"center" border=3D"0" cellpadding=3D"0" cellspacing=3D"0" height=3D"100%" width=3D"100%">),这意味着XML Service无法对其进行解析。

有什么办法可以对此进行解密以使其更易读?我可以在“ = 3D”上进行查找替换,除了a)电子邮件太长而超时并且b)我猜可能还会有其他字符受到影响。

编辑: 我也尝试过使用.getBody()进行此操作,但是当我记录结果时,它不会显示任何HTML标记,并且如果我尝试搜索HTML中已知存在的字符串,match()只是返回null:

var htmlContent = GmailApp.getUserLabelByName('myLabel').getThreads()[0].getMessages()[0].getBody();

Logger.log(htmlContent);
Logger.log(htmlContent.match('<html'));  
Logger.log(htmlContent.match('cellspacing'));

2 个答案:

答案 0 :(得分:0)

您应该使用getBody()方法获取消息的HTML内容。

var message = GmailApp.getInboxThreads()[0].getMessages()[0];
Logger.log(message.getBody());

答案 1 :(得分:0)

如今,这种情况很少见,但电子邮件仍然只能以纯文本格式发送。签出原始电子邮件。在Trace an email with its full headers上介绍了如何在Gmail上检查原始邮件。