我创建了每 15 分钟触发一次并监控收件箱标签以查找新邮件的 Google App 脚本。该标签由电子邮件过滤器应用,该过滤器仅对来自特定电子邮件地址和特定主题的电子邮件进行标记。当脚本运行它时:
- 检查是否有任何带有该标签的消息
- 抓取电子邮件的正文
- 拆分 at the 中的句子
"<br />"
- 将生成的数组粘贴到电子表格中
- 删除收件箱标签,使其不再位于收件箱中。
我遇到的问题是脚本在运行时不会将任何内容粘贴到电子表格中,它会跳过它并只是删除标签。如果我手动进入并将标签重新添加到消息中,则下次运行脚本时,它会完美地将所有数组元素添加到电子表格中,然后删除标签。但我不想每次都重新申请标签。我是脚本新手,所以如果我的代码不符合公认的标准,我深表歉意。
function myFunction() {
//Get Email and split data into array
var NewPhy = GmailApp.getUserLabelByName("New Physician Request")
var TransPhy = GmailApp.getUserLabelByName("Transferred Physician Request")
var Threads = GmailApp.getUserLabelByName("New Physician Request").getThreads();
if (Threads.length > 0) {
var messages = Threads[0].getMessages()
var body = messages[(messages.length - 1)].getBody().split("<br />")
//Search, tag, and import values into spreadsheet
var Spreadsheet = SpreadsheetApp.openByUrl(" Spreadsheet URL here ");
var Sheet = Spreadsheet.getSheetByName("Sheet Name here").insertRowBefore(3);
var SiteElement = ArrayLib.find(body, -1, "Associated Customer Site Information:")
var Site = body[SiteElement + 1].replace(/[A-Z]{3}/gm, "").replace(/(<([^>]+)>)/igm, "").replace(/^[ \t]+/igm, "").replace(/</igm, "").replace(/>/igm, "").replace(/ /igm, "").replace(/"/igm, "").trim()
var A3 = Sheet.getRange("A3").setValue(Site).setBorder(true, false, false, false, false, false).setBackgroundRGB(239, 239, 239);
var ConsultantElement = ArrayLib.find(body, -1, "Marketing Consultant 1 =")
var Consultant = body[ConsultantElement].replace("Marketing Consultant 1 =", "").replace(/[A-Z]{3}/gm, "").replace(/(<([^>]+)>)/igm, "").replace(/^[ \t]+/igm, "").replace(/</igm, "").replace(/>/igm, "").replace(/ /igm, "").replace(/"/igm, "").replace(/^[ \t]+/, "").trim()
var C3 = Sheet.getRange("C3").setValue(Consultant).setBorder(true, false, false, false, false, false);
// Remove inbox label and add Transferred label
TransPhy.addToThread(Threads[0])
NewPhy.removeFromThread(Threads[0])
}