我的google文档中有新用户,其名称为。我的脚本每天(晚上6点)发送带有欢迎消息的消息,并添加doc(日期发送,信息发送第一条消息)。 3天后发送第一封邮件。脚本首先发送“后续行动1”,然后在文档中添加信息。 7天脚本后,发送带有后续措施2的最后一封电子邮件。我的脚本有效! 但是我有问题,因为我的脚本每次发送新电子邮件时都不会发送带有线程的邮件。
我不知道如何从第一条消息中获取ID消息并在线程中发送后续1和后续2。
这是我的文档:https://imgur.com/1AqTcOj
var docsID = SpreadsheetApp.openById("My_id_docs");
var sheet1 = docsID.getSheetByName("Sheet1");
var sheet2 = docsID.getSheetByName("Sheet2");
var addressEmailSender = "My_EMAIL";
var emailSubject = sheet2.getRange("C1").getValues();
var emailContent = sheet2.getRange("A2").getValues();
var emailFollowup1Subject = sheet2.getRange("C4").getValues();
var emailFollowup1Content = sheet2.getRange("A5").getValues();
var emailFollowup2Subject = sheet2.getRange("C8").getValues();
var emailFollowup2Content = sheet2.getRange("A9").getValues();
var lastRow = sheet1.getLastRow();
var now = new Date();
for (var i = 2; i <= lastRow; i++) {
var tempTime = sheet2.getRange("B14");
var CategoryMail = sheet1.getRange(i, 1).getValues();
var Answer = sheet1.getRange(i, 8).isBlank();
var UserEmail = sheet1.getRange(i, 9).getValues();
if (CategoryMail == "Other" && Answer && UserEmail.length > 0 ) {
var userName = sheet1.getRange(i, 10).getValues();
if (userName.length > 0) {
var messageTitle = "Hey " + userName + "," + '\n';
} else {
var messageTitle = "Hey," + '\n';
}
tempTime.setValue(new Date(now.setHours(0, 0, 0, 0))).setNumberFormat('dd/MM/yyyy');
var TestTime = tempTime.getValue().valueOf();
if(sheet1.getRange(i,2).isBlank()) {
sheet1.getRange(i,2).setValue("yes");
sheet1.getRange(i,5).setValue(new Date(now.setHours(0, 0, 0, 0))).setNumberFormat('dd/MM/yyyy');
GmailApp.sendEmail(UserEmail, emailSubject, messageTitle + emailContent, {from: addressEmailSender, name: "Buddy"});
GmailApp.getMessageById(id)
}
else {
var Var0 = sheet1.getRange(i,5).getValue().valueOf();
var Var1 = sheet1.getRange(i,6).getValue().valueOf();
var Var2 = sheet1.getRange(i,7).getValue().valueOf();
if((TestTime >= Var1 && TestTime < Var2) && sheet1.getRange(i,3).isBlank() ) {
sheet1.getRange(i,3).setValue("yes");
GmailApp.sendEmail(UserEmail, emailFollowup1Subject, messageTitle + emailFollowup1Content, {from: addressEmailSender, name: "Buddy"});
}
else if((TestTime >= Var2 && TestTime > Var1) && sheet1.getRange(i,4).isBlank() && sheet1.getRange(i,3).getValues() == "yes") {
sheet1.getRange(i,4).setValue("yes");
GmailApp.sendEmail(UserEmail, emailFollowup1Subject, messageTitle + emailFollowup2Content, {from: addressEmailSender, name: "Buddy"});
}
}
}
}
}```
答案 0 :(得分:0)
sendEmail()
函数不会返回线程的ID。如果在发送电子邮件时将自己添加为cc
,则可以执行搜索收件箱,然后获取ID。之后,您可以add messages to threads。
一个更简单的解决方案是使用MailApp而不是GmailApp。与GmailApp的主要区别在于,您可以管理大多数Gmail功能。 请记住,您需要使用相同的主题。另外,它具有不同的语法:
MailApp.sendEmail("mail@example.com", "Subject", "body");