Google表格脚本并发送多封电子邮件?

时间:2018-03-15 14:49:54

标签: email google-apps-script google-sheets automation

我已经在网络上和本网站上的所有地方进行了搜索。我想要做的是相对简单,但是我不太了解javascript自己写,但我正在学习。

我有一张包含电子邮件地址的Google工作表以及5列中的数据。我们说总共有3个电子邮件地址。现在说有3行具有相同的电子邮件地址,并且每行具有比前一行更新/不同的数据。我想用3行/ 5列数据向该地址发送JUST 1电子邮件。也可能有电子邮件地址,但行/列中没有数据。显然,该行不应发送任何内容。然后是第二个电子邮件地址。重复但发送到新的电子邮件地址。下一封电子邮件等

Here's the sheet to give you a clearer picture.我想在每封电子邮件中保留B列到表F列的表格/颜色。

下面的脚本让我大部分时间都没有(没有表格的外观/颜色),但是几天前我尝试使用它时,它发送的是每行数据的新电子邮件而不是一封电子邮件对于几行数据...但它以前工作! (再次没有我的表格的外观/颜色,这是简单的文字)

function sendEmails() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  ss.setActiveSheet(ss.getSheetByName("sheet1"));
  var sheet = SpreadsheetApp.getActiveSheet();
  var dataRange = sheet.getRange("A2:m8");
  var data = dataRange.getValues();

  // Modified
  var temp = [];
  var emailAddress, data1, data2, data3, data4, data5;
  for (var i in data) {
    [emailAddress, data1, data2, data3, data4, data5] = data[i];
    var message = '\n\n' + data1 + ' ' + data2 + ' ' + data3 + ' ' + data4 + ' ' + data5;
    if (emailAddress || !data1) {
      if (temp.length > 0) {
        MailApp.sendEmail(temp[0], "Subject", temp.slice(1,temp.length).join("\n"));
        var temp = [];
      }
      temp.push(emailAddress, message);
      if (!dimension) break;
    } else {
      temp.push(message);
    }
  }
}

电子邮件正文的格式应如下所示,但同样,我还希望它保留表格中的外观/颜色:

screenshot of data/sheet in email

一旦有效,我希望我的电子邮件中包含Gmail的电子邮件签名。我不确定我是否能够完全按照我的Gmail帐户获取,或者只是通过javascript获取简单文本。

我有这条线但是那个简单的文字。任何方式来获取我的徽标/格式/等。匹配我的Gmail或Outlook帐户?

 var signature = "\n---\nsample signature";

非常感谢您的帮助。谢谢。

0 个答案:

没有答案