使用Google脚本发送到多封电子邮件

古腾
function sendEmails() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2; // First row of data to process
  var numRows = 5; // Number of rows to process
  // Fetch the range of cells A2:I6
  var dataRange = sheet.getRange(startRow, 1, numRows, 10);
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();
  var counter = 0;
  var qua_num = [[]];
  for (var i in data) {
    var row = data[i];
    var days = row[8];
    if (days > -14) {
    var emailAddress = row[9]; // First column
      qua_num += [row[0]];
      counter += 1;
    }
  }
  var message = qua_num + ' equipment are approaching due date or out of cal. Please check with QA for replacement or sending the equipment out for re-calibration'; // Second column
  var subject = 'Check Equipment Calibration Alert';
  MailApp.sendEmail(emailAddress, subject, message);
}

当前代码仅允许我从Google电子表格发送到一个电子邮件地址。如果每行中都有一个不同的电子邮件地址(多行也可能具有相同的电子邮件地址),如何更改功能?请参阅下面的Google电子表格示例。

Google Spreadsheet屏幕快照

根据电子表格中的信息,QUA-005和QUA-007满足if语句的条件。预期的输出将是:

将电子邮件1发送到电子邮件地址1 QUA-005设备即将到期或过期。请与质量检查部门联系以进行更换或将设备寄出进行重新校准。

将电子邮件2发送到电子邮件地址2 QUA-007设备即将到期或过期。请与质量检查部门联系以进行更换或将设备寄出进行重新校准。

如果电子邮件地址相同,则输出为:

QUA-005,QUA-007设备即将到期或过期。请与质量检查部门联系以进行更换或将设备寄出进行重新校准。

Tanaike
  • 当“ I”列的值大于时,您希望将电子邮件发送到“ J”列的电子邮件地址-14
  • 如果“ J”列的电子邮件地址相同,则您希望汇总“ A”列的值并将其发送到一个电子邮件地址。
  • 您想使用Google Apps脚本来实现。

如果我的理解是正确的,那么这个答案呢?请认为这只是几个可能的答案之一。

修改要点:

  • 在此修改中,首先,根据从Spreadsheet检索的值创建一个对象。然后,使用该对象创建电子邮件的内容并将其发送。

修改后的脚本:

修改脚本后,请进行以下修改。

从:

var counter = 0;
var qua_num = [[]];
for (var i in data) {
  var row = data[i];
  var days = row[8];
  if (days > -14) {
  var emailAddress = row[9]; // First column
    qua_num += [row[0]];
    counter += 1;
  }
}
var message = qua_num + ' equipment are approaching due date or out of cal. Please check with QA for replacement or sending the equipment out for re-calibration'; // Second column
var subject = 'Check Equipment Calibration Alert';
MailApp.sendEmail(emailAddress, subject, message);

至:

data.reduce((m, [qua_num,,,,,,,,daysPastCal,emailAddress]) => {
  if (daysPastCal > -14) m.set(emailAddress, m.has(emailAddress) ? [...m.get(emailAddress), qua_num] : [qua_num]);
  return m;
}, new Map())
.forEach((qua_num, emailAddress) => {
  var message = qua_num.join(",") + ' equipment are approaching due date or out of cal. Please check with QA for replacement or sending the equipment out for re-calibration';
  var subject = 'Check Equipment Calibration Alert';
  MailApp.sendEmail(emailAddress, subject, message);
});

注意:

  • 在这种情况下,请在脚本编辑器中启用V8。

参考文献:

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Googlesheets 脚本:mailApp 将多封电子邮件发送到指定的抄送电子邮件

使用php邮件将消息发送到多封电子邮件

从查询结果中获取电子邮件后,如何发送到多封电子邮件?

使用字典提取电子邮件地址。某些键有多封电子邮件,如何发送到所有电子邮件?

将Cognos Burst Reporting发送到多封电子邮件

使用python发送多封电子邮件

使用codeigniter发送多封电子邮件

将Google表格中的值发送到电子邮件的脚本

将Google文件发送到电子邮件

如何使用 php 和 google gmail api 将电子邮件发送到多个电子邮件抄送 ID?

使用PHP解析发送到地址的电子邮件?

使用Google表格将压缩的Zip文件夹发送到电子邮件

如何在 Google Apps 脚本中发送带有变量为“发送到”地址的 html 电子邮件

使用 mailchimp 将电子邮件发送到特定电子邮件

使用phpmailer的Gsuite电子邮件未将电子邮件发送到实时电子邮件地址

如何使用Codeigniter使用cc发送多封电子邮件?

如何将Google脚本发件人电子邮件发送到[email protected]

Google脚本-将活动工作表以PDF格式发送到单元格中列出的电子邮件

PHP脚本将电子邮件发送到垃圾邮件文件夹

使用nodemailer一次发送多封电子邮件

为什么这个 PHP 电子邮件脚本不会发送到我的 Yahoo 电子邮件?

阻止用户发送多封电子邮件

PHPMailer发送多封电子邮件失败

SMTP发送多封电子邮件

将电子邮件发送到Google电子表格中的多个地址

通过procmail将电子邮件发送到脚本的最安全方法是什么?

如何通过php脚本将多个输入从表单发送到电子邮件

将电子邮件从Powershell脚本发送到基于ActiveDirectory用户的多个收件人

使用Google脚本发送多行电子邮件(Google表格)