google-apps-script - 使用自动脚本发送电子邮件
问题描述
我正在尝试让 Gsheets 发送到多个电子邮件。它仅从A2
&收集信息A3
。我该如何解决?
function sendEmail() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet1=ss.getSheetByName('Sheet1');
var n=sheet1.getLastRow();
for (var i = 2; i < n+1 ; i++ ) {
var emailAddress = sheet1.getRange(i,1).getValue();
var subject = sheet1.getRange(i,2).getValue();
var message = sheet1.getRange(i,3).getValue();
MailApp.sendEmail(emailAddress, subject, message);
}
}
解决方案
解释:
根据您的问题,我了解您已修复subject
并且message
您想要遍历电子邮件列表。
- 您说过
A2 & A3
,但是在您的电子邮件代码中,您遍历了 A 列,因此将主题和消息放在与电子邮件相同的列中是没有意义的。
解决方案:
假设以下表格:
以下是如何根据 A 列发送电子邮件,主题和消息分别基于单元格B2
和B3
:
function sendEmail() {
const ss = SpreadsheetApp.getActive()
const sheet1=ss.getSheetByName('Sheet1');
const subject = sheet1.getRange('B2').getValue(); // B2
const message = sheet1.getRange('B3').getValue(); // B3
const n=sheet1.getLastRow();
const emails = sheet1.getRange('A2:A'+n).getValues().flat();
emails.forEach(emailAddress=>{
MailApp.sendEmail(emailAddress, subject, message);
});
}
如果您有不同的数据结构,请告诉我,我会相应地修改答案。
推荐阅读
- javascript - 使用对象和数组的 JS 登录/注册
- spring-boot - 在 Spring Boot 中使用数据库 H2 进行测试
- oop - Fortran 中两个不同声明之间的差异
- laravel - 卡住一对一的关系 laravel
- jpa - 找不到元素“持久性”的声明(Eclipselink 和 HibernateOGM 一起)
- python - virtualenv:在 macOS 上卸载并重新安装
- reactjs - 使用 React 的输入占位符中的 FontAwesome 图标
- mysql - MySQL 使用临时表(学习)
- rabbitmq - 在销毁之前关闭@RabbitListener 频道
- php - 从 mysqli_fetch_array 添加值