我正在编写一段代码,可以对我的工作流程做出很大贡献。我每天都会在Gmail中收到一封发送到某些标签的邮件,并带有一个xml附件,我希望将其提取到特定的电子表格中。我正在尝试构建的是带有Google App脚本的脚本,该脚本将能够:
我的代码如下所示:
function RetrieveFeedAttachment() {
var label = GmailApp.getUserLabelByName("Label_Name");
var threads = label.getThreads();
var feed = SpreadsheetApp.openById("The_Specific_Spreadsheet_ID").getSheetByName("Spreadsheet_Name");
feed.clearContents();
for (var i = 0; i < threads.length; i++) {
if (threads[i].isUnread()) {
var msg = GmailApp.getMessagesForThread(threads[i]);
var xmlDoc = XmlService.parse(msg[0].getAttachments());
for(var j = 0; j < msg.length; j++) {
feed.appendRow(xmlDoc.getContent(j));
}
threads[i].markRead();
}
}
}
当我运行脚本调试器时,它向我显示以下通知“第1行错误:序言中不允许内容。(第10行,文件“代码”))
感谢您的建议\帮助!
该方法getAttachments()
返回附件数组。这不是XmlService可以解析的XML文件。该方法XmlService.parse()
接受一个字符串。
如果您可以假设只有一个附件,那么
msg[0].getAttachments()[0].getDataAsString()
应该会为您提供一个您可以解析的字符串XmlService.parse()
。否则,请遍历附件数组。
您可能还希望放入XmlService.parse()
try-catch块,以防出现带有非XML附件的消息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句