更新了组合循环,简化了一些代码,仍然无效。
for循环应该通过我的工作表中的特定列(data [n] [0]和data [n] [0] data [n] [1])并检查名称或电子邮件是否在它已经。如果出现任何一个,风扇将被设置为" isOldFan"。 (这都是在另一个大循环中,发生的第一件事是将vars设置为" new"开始)
if,else if,else动作应由状态扇确定。不幸的是,无论出于何种因素,每次都会跳过其他邮件并取消订阅并存档每封电子邮件。
我已经自己测试了循环,以及if的其他部分,否则它们似乎在部分工作......
// customer name or email on master sheet?
for(n=0;n<data.length;++n){
var sheetName = data[n][0];
var sheetEmail = data[n][1];
if ((sheetName===fanName) || (sheetEmail===fanEmail)) {
fan = "isOldFan";
}
}
// the magic
if (dueDate === today) {
if(fan==="isOldFan"){
// existing fan unstar and archive
GmailApp.unstarMessage(orderEmail);
GmailApp.moveThreadToArchive(uncheckedOrderEmails[e]);
}else if(orderTotal > 70){
// new VIP adds to sheet with "VIP"
GmailApp.unstarMessage(orderEmail);
ss.appendRow([fanName, fanEmail, restaurantName, "VIP"]);
}else{
// new fan, add to sheet
ss.appendRow([fanName, fanEmail, restaurantName]);
GmailApp.unstarMessage(orderEmail);
GmailApp.moveThreadToArchive(uncheckedOrderEmails[e]);
}
}
我已经忽略了这个巨大的循环中的部分,它解析了框中的每封电子邮件。在大循环开始时(在每个要检查的新电子邮件之前),粉丝将重新设置为&#34; old&#34;。
答案 0 :(得分:0)
关闭主题。我也没有看到任何错误,但您可以稍微简化此代码:
if (dueDate === today) {
var isOldFan = data.some(row => row[0]===fanName || row[1]===fanEmail);
if(isOldFan){
// existing fan unstar and archive
GmailApp.unstarMessage(orderEmail);
GmailApp.moveThreadToArchive(uncheckedOrderEmails[e]);
}else if(orderTotal > 70){
// new VIP adds to sheet with "VIP"
GmailApp.unstarMessage(orderEmail);
ss.appendRow([fanName, fanEmail, restaurantName, "VIP"]);
}else{
// new fan, add to sheet
ss.appendRow([fanName, fanEmail, restaurantName]);
GmailApp.unstarMessage(orderEmail);
GmailApp.moveThreadToArchive(uncheckedOrderEmails[e]);
}
}