如何在Apps Script的MailApp.sendEmail邮件主题中添加字符串+今日日期
解决方法:将今日日期加入邮件主题
步骤1:确保today变量正确定义
先在代码里初始化today变量,可根据需求选择日期格式:
// 获取本地化日期(如"2024/5/20",格式随地区自动调整) const today = new Date().toLocaleDateString(); // 或者获取ISO标准日期(如"2024-05-20") // const today = new Date().toISOString().split('T')[0];
步骤2:修改subject变量
用以下两种方式之一,把日期插入主题:
方式1:模板字符串(推荐,简洁易读)
const subject = `New Machine - ${today}`;
方式2:传统字符串拼接
const subject = "New Machine - " + today;
修改后的完整代码示例
function sendEmails() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const dataRange = sheet.getRange("A17:dm"); const data = dataRange.getValues(); let i = 0; // 用let声明变量,避免全局变量污染 let j = 3; // 定义今日日期变量 const today = new Date().toLocaleDateString(); const col = data[j]; const row = data[i]; const machinetype = row[84]; const machinemodel = col[84]; const emailAddress = "djas@molusvs.com"; // 修改后的主题,加入今日日期 const subject = `New Machine - ${today}`; const message = createEmailMessage(machinetype, machinemodel); function createEmailMessage(machinetype, machinemodel) { const message = `Hi Dhariana, A new machine has arrived at the shop. It is a ${machinemodel}... a ${machinetype} machine. Kindly schedule the cleaning procedure. Thank you. Best, `; return message; } try { MailApp.sendEmail(emailAddress, subject, message); console.log(` Email sent to ${emailAddress}`); console.log(`${machinetype}, ${machinemodel}`); } catch (error) { // 添加错误日志,方便排查问题 console.error("发送邮件失败:", error); } }
额外提示
- 若需要带时间,可改用
new Date().toLocaleString()生成包含时分秒的日期字符串 - 原代码中
i和j未声明会成为全局变量,建议用let声明避免潜在问题 - catch块中添加错误日志,便于后续排查邮件发送失败原因
内容的提问来源于stack exchange,提问作者Miguel Arturo Monclus
相关产品推荐
相关产品推荐

