javascript - 使用 Google Sheet 和 AppScript 向多个收件人发送 HTML 电子邮件
问题描述
我创建了一个脚本,可以帮助我将批量 HTML 电子邮件发送给多个收件人。在我的 Google 表格文件中,第 1 列包含电子邮件地址,第 2 列包含收件人姓名。我试图实现并陷入困境的另一件事是我想用收件人的姓名填充每封电子邮件。例如,我正在向 xxx@domain.com 发送电子邮件,我希望电子邮件以“亲爱的 xxx”开头,等等所有收件人。
如何才能做到这一点?
我的代码如下:
function sendEmails() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lr = ss.getLastRow();
var lc = ss.getLastColumn();
for (var i = 2;i<=lr;i++){
var currentEmail = ss.getRange(i, 1).getValue();
var subjectLine = "Test";
var htmlOutput = HtmlService.createHtmlOutputFromFile('email');
var email = htmlOutput.getContent();
MailApp.sendEmail( currentEmail, "test", email, { htmlBody: email } )
}
}
谢谢
解决方案
您可以使用indexOf查找@
字符并将数组拆分为子字符串以仅获取位于 @ 之前的字符。然后,您可以将其添加到您的htmlBody
参数中。例如:
function sendEmails() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lr = ss.getLastRow();
var lc = ss.getLastColumn();
for (var i = 2;i<=lr;i++){
var currentEmail = ss.getRange(i, 1).getValue();
var subjectLine = "Test";
var htmlOutput = HtmlService.createHtmlOutputFromFile('email');
var email = htmlOutput.getContent();
//My changes start here
var index = currentEmail.indexOf('@');
var name = currentEmail.substr(0, index); //chars from position 0 to index
var head = '<html><body>Dear ' + name + ': <br />';
MailApp.sendEmail( currentEmail, "test", email, { htmlBody: head + email } ) //You can add + '</body></html>' at the end if it's necessary.
}
}
推荐阅读
- python - PyPDF2 调整文本或图像大小
- android - Flutter 上的简单可扩展列也不会有 Title > expandable
- awk - 在将 RS 设置为另一件事时,为什么 GNU Awk 的 POSIX 模式不将新行视为字段?
- python - Python将变量传递给另一个脚本
- javascript - 在同一行上使用 2 个不同的代码块
- javascript - 如何将猫鼬中的鉴别器连接到我的父文档?尝试导入数据时出错
- rust - 移动关闭的特征?
- python - 如何使用 FastAPI 返回 HTMLResponse
- php - 我可以从 PHP if{} 内跳转到 else{}
- python - 在 numpy 数组中查找一些缺失点