我正在使用下面的脚本从Google工作表发送电子邮件提醒,但我想修改它,以便它在每行的单元格F中指定的日期发送电子邮件。
var EMAIL_SENT = "EMAIL_SENT";
function sendEmails2() {
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 emailAddress = row[0]; // First column
var subject = row[1]; // Second column
var message = row[2]; // Third column
var emailSent = row[3];
if (emailSent != EMAIL_SENT) { // Prevents sending duplicates
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(startRow + i, 4).setValue(EMAIL_SENT);
// Make sure the cell is updated right away in case the script is interrupted
SpreadsheetApp.flush();
}
}
}
这就是我所拥有的,任何在其中添加日期的尝试都失败得很惨。
我在前面遇到了一个问题:谷歌应用程序脚本-根据手机中的日期发送电子邮件,但无法将其与我的脚本结合起来。
Serge在前面的回答中提供的解决方案为您提供了一个非常灵活的脚本,能够使用日期/时间的任何部分作为发送的标准。
这里有一个更简单、更不灵活的方法。假设:
这里的神奇之处在于比较日期。JavaScript Date对象是从1970年开始的时间(世界时间)的数字表示。那么,比较日期的相等性是困难的。然而,由于上面的假设,我们只关心日期,这是有帮助的。为了解决时区问题并消除小时、分钟等的影响。,我们只需使用相同的Date方法从我们想要比较的日期对象生成日期字符串。toLocaleDateString()
方法为我们调整时区。
结果脚本:
var EMAIL_SENT = "EMAIL_SENT";
function sendEmails3() {
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 emailAddress = row[0]; // First column
var subject = row[1]; // Second column
var message = row[2]; // Third column
var emailSent = row[3];
var reminderDate = row[5].toLocaleDateString(); // date specified in cell F
if (reminderDate != today) // Skip this reminder if not for today
continue;
if (emailSent != EMAIL_SENT) { // Prevents sending duplicates
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(startRow + i, 4).setValue(EMAIL_SENT);
// Make sure the cell is updated right away in case the script is interrupted
SpreadsheetApp.flush();
}
}
}
我正在尝试创建一个脚本,为每个包含今天日期的单元格发送电子邮件。以下是我目前掌握的情况: 以下是我对脚本工作逻辑的设想: estimatedReturnDate最初获取F列中的第一个单元格,这是一个日期列表。 TodayDate获取单元格S1,其中包含今天的日期。 然后,for循环遍历工作表的所有行,并检查是否估计了返回日期=今天日期。如果是,将发送一封电子邮件,其中包含与今天日期匹配的行号。 然
邮件提醒会使某些功能有更好的用户体验, 比如发送邮件提醒用户新消息到达. 请在seahub_settings.py中加入以下语句以开启邮件提醒功能 (同时需要对你的邮箱进行设置). EMAIL_USE_TLS = False EMAIL_HOST = 'smtp.domain.com' # smpt 服务器 EMAIL_HOST_USER = 'username@domain.com
代码不应该在“参考”表中的“n”栏中的“电子邮件发送”栏中再次发送电子邮件。 如有任何帮助,我将不胜感激
说明 用于门店实体卡交易后,向客户微信发送交易提醒消息 请求地址 http://api.dc78.cn/Api/mb_notify 请求方式 GET 请求参数 参数 参数名称 必填 描述 范例 id 微信卡id amt 交易金额/积分 cate 类型 类型(可选,默认为0),0=储值提醒,1=积分提醒 balance 储值余额/积分余额 cardno 实体卡号 实体卡号(仅用于显示) trid 交
说明 此协议用于消费完成后发送消费完成/评价提醒消息,引导客人进入评价 需要将"提醒消息->消费完成/评价提醒"启用 请求地址 http://api.dc78.cn/Api/cash_complete 请求方式 GET 请求参数 参数 参数名称 必填 描述 范例 mbno 卡号 输入或扫码 id 会员卡id id和mbno两个可选其中之一 bzid 消费单编号 必须唯一,用于跟踪客人评价 返回 {
此协议用于消费完成后发送消费完成/评价提醒消息,引导客人进入评价 需要将"提醒消息->评价提醒"启用 请求参数说明 参数 描述 必填 示例值 类型 最大长度 action 接口参数组 是 object └action 需要调用的接口名称 是 cash_complete string get GET参数组,本组参数需要参与签名 是 object └mbno 会员卡号(id和mbno两个可选其中之一)