gpt4 book ai didi

javascript - 根据多个条件合并行以发送到电子邮件

转载 作者:行者123 更新时间:2023-11-30 09:12:52 24 4
gpt4 key购买 nike

怎么了!目前,我有一个工作代码,如果“提醒日期”是今天或之前,并且未选中“完成”复选框,则允许从 google 表格发送电子邮件。

目前,我使用 TEXTJOIN 函数来合并要发送给同一收件人的任务。当我运行我的代码时,它不会在项目符号中列出项目,而是在一行中列出。我不确定如何重写“消息”部分,以便它突出这些文本连接的值。

这是当前代码:

function sendEmails() {
var now = new Date().toLocaleDateString();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
var startRow = 2;
var sheet = ss.getSheetByName ('Tasks')
var numRows = sheet.getLastRow()-1;
var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn());
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var emailAddress = row[0];
var message = row[2];
var ReminderDate = row[3].toLocaleDateString();
var Status = row[5];
var subject = "Task reminders";

if (ReminderDate > now)
continue;

if (Status != true) {
var Email = {
to: emailAddress,
subject: "Task reminders | "+now,
htmlBody:
"Good day! This is to remind you of the following specific task/s:"+
"<br />"+
"<ul><li>"+message+"</li></ul>"+
"<br /><br />"+
"You can access the Task monitoring sheet by clicking <a href=" + ss.getUrl() + ">here</a>.",
name: "Taks monitoring",
};
MailApp.sendEmail(Email);
sheet.getRange(startRow + i, 5).setValue(now);
SpreadsheetApp.flush();
}
}
}

这是 Google 表格:

enter image description here

这是我收到的内容:

enter image description here

但这才是我真正想要的:

enter image description here

我尝试用谷歌搜索几个样本,但我不确定我是否做错了,至于为什么我似乎没有找到任何类似的案例。我希望我能在这里得到关于理解和学习什么来实现目标的指导。我不确定,但我认为这与代码读取 message 的方式有关,或者我是否应该不再使用 TEXTJOIN - 只捕获单独的行用于发送给同一个人,并通过代码将它们组合起来(也不知道该怎么做或者是否可能)

最佳答案

此解决方案假定列表项之间存在单元格换行符。

在这一行之后:

var message = row[2];       

添加这一行

  message = message.replace(/\n/g, "</li><li>");

它将用 HTML 标记替换换行符。

关于javascript - 根据多个条件合并行以发送到电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57322397/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com