【问题标题】:Email a group and not individual addresses with Google App Script使用 Google App Script 向群组而非个人地址发送电子邮件
【发布时间】:2017-08-07 02:41:21
【问题描述】:

我正在为我的 Google 站点编写电子邮件通知脚本,我已经对其进行了测试,它运行良好,代码如下:

var url_of_announcements_page = "https://sites.google.com/a/announcements"; 
var who_to_email = "email@company.com";

function emailAnnouncements(){
  var page = SitesApp.getPageByUrl(url_of_announcements_page);
  if(page.getPageType() == SitesApp.PageType.ANNOUNCEMENTS_PAGE){ 

    var announcements = page.getAnnouncements({ start: 0,
                                               max: 10,
                                               includeDrafts: false,
                                               includeDeleted: false});
    announcements.reverse();                                    
    for(var i in announcements) { 
      var ann = announcements[i]; 
      var updated = ann.getLastUpdated().getTime(); 
      if (updated > PropertiesService.getScriptProperties().getProperty("last-update")){ 
        var options = {}; 

        options.htmlBody = Utilities.formatString("<h1><a href='%s'>%s</a></h1>%s", ann.getUrl(), ann.getTitle(), ann.getHtmlContent());

        MailApp.sendEmail(who_to_email, "Notification - '"+ann.getTitle()+"'", ann.getTextContent()+"\n\n"+ann.getUrl(), options);

        PropertiesService.getScriptProperties().setProperty('last-update',updated);
      }
    }
  }
}

function setup(){
 PropertiesService.getScriptProperties().setProperty('last-update',new Date().getTime());
}  

唯一的问题是我希望有多个人收到这封电子邮件。我知道可以在每个电子邮件地址后使用逗号逐个添加它们。但是,这需要大量维护,我想将其切换到 Gmail 联系人组以加快维护速度。

我尝试用我在 Gmail 上创建的联系人组替换电子邮件地址。我称它为Test,当我用联系人组的名称替换email@company.com 时,我出现了这个错误:

我在网上查看过,但找不到对我的具体情况有帮助的东西。所以我有两个问题:

  1. 有没有办法更改代码以使 Gmail 联系人组正常工作?
  2. 如果没有,除了 Gmail 联系人组之外,我还能使用其他什么吗?

【问题讨论】:

  • 您可以使用带有逗号分隔的电子邮件地址列表的密件抄送选项,并且没有收件人可以看到其他收件人的电子邮件地址。这是doc link

标签: google-apps-script gmail


【解决方案1】:

您需要先将电子邮件地址保存到数组中。使用联系人应用获取测试组,然后遍历所有联系人以获取他们的地址。

var emails = []; 
var contacts = ContactsApp.getContactGroup('Test').getContacts();
 for(var i in contacts){
    emails.push(contacts[i].getPrimaryEmail());
   }

然后按照 Cooper 的建议在 send to 或 bcc 参数中使用 emails 变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-01
    • 2020-10-20
    • 2023-04-05
    • 1970-01-01
    • 2011-03-21
    • 2012-06-24
    • 1970-01-01
    相关资源
    最近更新 更多