如何根据单元格中的日期创建谷歌应用程序脚本14天提醒电子邮件



你能帮我吗?我想从谷歌表单中的某个日期起,每14天给自己发一封电子邮件,其中包含一两个单元格中的一些进一步信息。我有下面的代码,但我不知道如何在谷歌应用程序脚本中使用datediff,因为我从Excelvba中复制了datediff。我还认为我的代码结构是错误的,电子邮件将一直以代码当前的形式发送。

function sendEmails() {
var today = new Date().toLocaleDateString();  // Today's date, without 
time
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;  // First row of data to process
var numRows = 999;   // Number of rows to process
// Fetch the range of cells A2:B999
var dataRange = sheet.getRange(startRow, 1, numRows, 999)
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var reminderDate = row[0].toLocaleDateString();  // Sale start date
var propertyAddress = row[1];  // The address of the property
var subject = row[1]; // Email subject
var myemail = 'test@test.com';
}

function setTrigger(){
var reminderDate = row[0].toLocaleDateString();  // Sale start date
//This trigger will set 14 days reminder trigger set in 
createFourteenDaysTrigger function.
ScriptApp.newTrigger('createFourteenDaysReminderTrigger')
.timeBased()
.atDate(reminderDate) //format -> .atDate(2017, 04, 01) 
.atHour(12)
.create();
}
function createFourteenDaysReminderTrigger() {
//This trigger will send emails after 14 days
ScriptApp.newTrigger('sendReminderEmail')
.timeBased()
.everyDays(14)
.create()
}
function sendReminderEmail(){
MailApp.sendEmail(myemail, subject, propertyAddress);// Sending of 
the email
SpreadsheetApp.flush();
}
}

您可以在应用程序脚本中使用基于时间的触发器每14天发送一次提醒电子邮件,为此您需要创建两个触发器,第一个用于在提醒日期启动触发器,第二个用于每14天创建提醒,

请尝试使用以下示例代码。

function setTrigger(){
//Your other code goes here
var reminderDate = row[0].toLocaleDateString();  // Sale start date
//This trigger will set 14 days reminder trigger set in createFourteenDaysTrigger function.
ScriptApp.newTrigger('createFourteenDaysReminderTrigger')
.timeBased()
.atDate(reminderDate) //format -> .atDate(2017, 04, 01) 
.atHour(12)
.create();
}
function createFourteenDaysReminderTrigger() {
//This trigger will send emails after 14 days
ScriptApp.newTrigger('sendReminderEmail')
.timeBased()
.everyDays(14)
.create()
}
function sendReminderEmail(){
MailApp.sendEmail(myemail@me.com, 14 Day Sales Chase Due, propertyAddress);// Sending of the email
}

相关内容

最新更新