我是Google Scripting的新手。
我创建了一个Google电子表格应该连接到GMail的脚本。一切都运作良好。
我的问题是,我需要检查电子邮件内容是否包含“订购”字样。如果是,它应该得到“订单”一词和它后面的数字。
例如,电子邮件在邮件正文中包含“ORDER 90104”,然后Google脚本应将ORDER 90104插入表单中的列。电子邮件的示例可能是:
您好,客户要求 ORDER 90104 。感谢。
这甚至可能吗?截至目前,我使用getPlainBody(),我可以获取电子邮件的所有内容并将其放在一列中。我的计划是检查该列并查找单词ORDER。虽然我无法找到/结束解决方案。
这是我的工作代码,获取前三封电子邮件的电子邮件内容:
function getGMail() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var threads = GmailApp.getInboxThreads(0,3);
cell = sheet.getRange("A1");
for (var i = 0; i < threads.length; i++) {
threadMessage = threads[i].getMessages();
var emailContent = threadMessage[0].getPlainBody();
cell.offset(i,0).setValue(emailContent);
}
}
非常感谢任何建议或意见。
谢谢!
答案 0 :(得分:1)
你好theladydevbugger,
由于你没有提供很多代码,我的答案很短:是的,你可以做到这一点!
方法:使用正则表达式:/ORDER [0-9]+/g.
如何使用正则表达式:下面是示例代码
var emailBody = yourMail.getPlainBody(); // supposing "yourMail" is the mail you retrieved
var isThereAnyOrder = false;
if(mailBody.search(/ORDER [0-9]+/g)>-1){
isThereAnyOrder=true;
var order=mailBody.match(/ORDER [0-9]+/g)>-1)[0];
Logger.log(order);
// do something with the order
}
else{
// there is no order do nothing
}