微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

根据单元格内容定义收件人

如何解决根据单元格内容定义收件人

我制作了一个脚本,可以在点击卡片按钮时将电子邮件转发给不同的人。这是代码的主要部分:

function forwardtest() {
var threadsa = GmailApp.search('label: InBox label: product-a');
for (var i = 0; i < threadsa.length; i++) {
var recipient = 'producta@gmail.com';
var messages = threadsa[i].getMessages();
for (var j = 0; j < messages.length; j++) {
  var body = messages[j].getBody();
  messages[j].forward(recipient,{htmlBody: body});
}
GmailApp.moveThreadToArchive(threadsa[i]);
}
var threadsb = GmailApp.search('label: InBox label: product-b');
for (var i = 0; i < threadsb.length; i++) {
var recipient = 'productb@gmail.com';
var messages = threadsb[i].getMessages();
for (var j = 0; j < messages.length; j++) {
  var body = messages[j].getBody();
  messages[j].forward(recipient,{htmlBody: body});
}
GmailApp.moveThreadToArchive(threadsb[i]);
}
}

有时,我们需要更改转发地址。由于我不希望人们直接在代码中更改它,因此我制作了一个 Google 表格,其中根据电子邮件标签列出了转发地址:

产品标签 转发地址
产​​品-a producta@gmail.com
product-b productb@gmail.com

有没有办法将 var recipient = 'producta@gmail.com'; 替换为“查找包含“product-a”内容的单元格并将收件人定义为它旁边单元格中的内容

在此先非常感谢您!

解决方法

解决方案:

由于您将引用 Google Sheet 来获取数据,因此您需要从 SpreadsheetApp 类开始使用 Sheets API。此外,由于此脚本未附加到您的用例中的工作表,您需要通过其 ID 打开工作表,该 ID 位于 URL 链接中:

https://docs.google.com/spreadsheets/d/SHEET-ID>/edit#gid=0

请注意 SHEET-ID,因为我们将在代码中使用它。

对于代码本身,我制作了一个单独的函数来查找收件人并发送电子邮件以实现模块化:

编辑:重新排列代码,将函数移到 for 循环中。

function forwardtest() {
  var sheet = SpreadsheetApp.openById("SHEET-ID").getSheetByName("Sheet1");
  var prodList = sheet.getRange(2,1,sheet.getLastRow()-1,2).getValues();

  for (var k = 0; k < prodList.length; k++) {
    var prod = prodList[k][0];
    var recipient = prodList[k][1];
    var threads = GmailApp.search('label: Inbox label: '+prod);
    for (var i = 0; i < threads.length; i++) {
      var messages = threads[i].getMessages();
      for (var j = 0; j < messages.length; j++) {
        var body = messages[j].getBody();
        messages[j].forward(recipient,{htmlBody: body});
      }
    GmailApp.moveThreadToArchive(threads[i]);
    }
  }
}

注意:将 SHEET-ID 替换为 URL 中的工作表 ID。

样本输出:

使用具有可变数量产品的示例表:

enter image description here

参考:

Class SpreadsheetApp

Class Sheet

Class Range

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。