从Google协作平台发送电子邮件通知

时间:2017-07-26 09:15:44

标签: google-apps-script google-sites

我一直试图设置电子邮件通知,以便在我的Google网站上创建新公告。我使用了我在网上找到的基本代码,但它并不适合我。这是:

function myFunction() {

var url_of_announcements_page = "https://sites.google.com/announcements-page-link"; 
var who_to_email = "name@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 > ScriptProperties.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, "Announcement "+ann.getTitle(), ann.getTextContent()+"\n\n"+ann.getUrl(), options);

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

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

代码似乎没有出现任何错误消息。但是,我没有收到我在代码中写的帐户的电子邮件。我已授予完全权限,以便脚本可以从我的帐户发送电子邮件。它似乎无法完成所需的任务。

我用来撰写公告的谷歌网站仍然是私密的,只有我能看到它,这在这段代码中起作用吗?

如果您发现任何错误或知道问题是什么,我会很高兴知道。

1 个答案:

答案 0 :(得分:1)

您已在myFunction下编写了这两项功能。你需要单独写它。另外{@ 1}} API已弃用,请使用ScriptProperties。请参阅以下代码。希望这有帮助!

PropertiesService