Google sheets 谷歌应用程序脚本创建重复的任务
使用标签和过滤器,我为所有收到的邮件设置了一个标签。生成电子邮件回执,生成,发送 // 2. 生成一个任务,用户名作为标题、日期、电子邮件的html链接,电子邮件作为备注。我正在仪表板上工作,并创建了以下脚本。然而,它似乎没有刷新。我不断从收到的电子邮件中获取任务和电子邮件,并从中删除标签Google sheets 谷歌应用程序脚本创建重复的任务,google-sheets,gmail,google-tasks-api,Google Sheets,Gmail,Google Tasks Api,使用标签和过滤器,我为所有收到的邮件设置了一个标签。生成电子邮件回执,生成,发送 // 2. 生成一个任务,用户名作为标题、日期、电子邮件的html链接,电子邮件作为备注。我正在仪表板上工作,并创建了以下脚本。然而,它似乎没有刷新。我不断从收到的电子邮件中获取任务和电子邮件,并从中删除标签 function EmailReceiptFunction(){ let receiptsub = "Email Receipt"; let receiptbody ="I'
function EmailReceiptFunction(){
let receiptsub = "Email Receipt";
let receiptbody ="I've received your email!";
let lbltxt = 'zzCogEmail'; // cog= zzCogEmail intro=zzIntroEmail
let tlid_txt = 'tasklistid'; //
var rpljunk = ['Listerservecrap','othercrap','reply@aplace.com','"','"','>']; //things I need to remove from the sender
var label = GmailApp.getUserLabelByName(lbltxt); // Log the subject lines of the threads labeled with MyLabel
var threads = label.getThreads();
For (var i = 0; i < threads.length; i++) {
var message = threads[i].getMessages()[i]; //get the message at index i of label array
var mydate = message.getDate();
let a_name = message.getFrom();
let mysub = message.getSubject();
var mybody = message.getPlainBody();
let myid = message.getHeader("Message-ID"); //this gets the messages id
if (mysub.includes('TODAYS EMAIL CHECK')){ //This is supposed to eliminate the email that prints out my daily agenda of how to check my email
message.removeLabel(label);
}else if(mysub.includes(receiptsub)){
message.removeLabel(label);
}else{
for (var s = 0; s < 10; s++){ //myAgenda.length, replaces double spaces and carriage returns in email body
var mybody = mybody.replace(/\n|
myid = myid.replace('\>','');
myid = myid.replace('\<','');
myid = 'https://mail.google.com/mail/u/0/?tab=wm#search/rfc822msgid:' + myid; //this creates a link in tasks to the email
let tasknotes = mydate + '\n\n' + myid + '\n\n' + mybody;
for (var r = 0; r < rpljunk.length; r++){
a_name = a_name.replace(rpljunk[r],'');
}
a_name = a_name.replace('<',' - ');
let indexaname = a_name.split('-');
var j = indexaname.length - 1;
let mysender = indexaname[j]; //sets the last line of the array to string variable mysender
var pos = mysender.lastIndexOf('@');
if (mysender.includes('dontacceptemailfromme@gmail.com')){
message.markRead();
} else if(mysender.includes('dontacceptemailfromme@sc.edu')) {
message.markRead();
} else if(mysender.includes('dontaccepteemailfromotherme')) {
message.markRead();
}else if(pos < 4) {
message.markRead();
} else {
GmailApp.createDraft(mysender, receiptsub, receiptbody);
var draft = GmailApp.getDrafts()[0]; // The first draft message in the drafts folder
var msg = draft.send(); // Send it
// Logger.log(tasknotes);
var taskListId = tlid_txt; //tasklist id for CogRec
var task = {
title: mysender,
notes: tasknotes,
};
//Adds a task with the email in this code created in IntroRec
var taskListId = tlid_txt;
task = Tasks.Tasks.insert(task, taskListId);
Logger.log(task);
}
threads[i].removeLabel(label);
threads[i].refresh();
}
}
}
函数EmailReceiptFunction(){
let receiptsub=“电子邮件收据”;
let receiptbody=“我已收到您的电子邮件!”;
让lbltxt='zzcogeemail';//cog=zzcogeemail intro=zzIntroEmail
让tlid_txt='tasklistid'//
var rpljunk=['Listerservecrap','othercrap','reply@aplace.com“,”,“,”,“>”];//我需要从发件人中删除的内容
var label=GmailApp.getUserLabelByName(lbltxt);//记录用MyLabel标记的线程的主题行
var threads=label.getThreads();
对于(var i=0;i','';
myid=myid.replace('\n您是否尝试过调试并查看代码是否在该循环中输入了两次,或者正在插入的任务?您是否可以尝试提供有关您的问题的更多信息?它似乎没有循环,但日志没有传播。我有一封电子邮件在任务列表中出现了4-8次。不是连续出现。在标签gi上搜索ves没有结果。它似乎没有循环(日志没有传播)。以下是我注意到的行为。1.电子邮件多次出现在任务列表中,但不是连续出现。在标签上搜索没有结果。2.错误的嵌入逻辑(我从内到外检查了每个步骤循环)3.也可能是我的刷新太晚了,没有用。4.我是否在收件箱之外搜索线程?5.我的主要想法是,这与我在便笺中嵌入的链接有关。我在删除标签之前设置了嵌入的链接(可能标签存在于我看不到的内容中)。好的,问题似乎是每次触发代码时,它都会搜索所有邮件,而不是收件箱。我如何解决这个问题?您不能只检查正在迭代的线程的标签吗?