2017-07-28 127 views
2

我正在Google Apps脚本上编写代码,以便每当我的网站发布新通告时发送一封电子邮件。以下是供参考的代码:向电子邮件通知脚本添加电子邮件签名

var url_of_announcements_page = "https://sites.google.com/announcements"; 
var who_to_email = "emailaccount"; 

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, "Announcement - '"+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获得我的签名并在最后自动插入?下面是电子邮件的格式行:

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

回答

2

Google Apps脚本不能访问用户的签名:有是没有方法MailApp,或GmailApp,或通过高级谷歌服务,即使在Gmail API访问。

原则上,您可以使用GmailApp获取最近传出的消息,并搜索其文本以查找消息正文中最后一个--后面包含的签名。但是这需要给脚本更多的访问权限(GmailApp可以访问,转发和删除现有的电子邮件,与MailApp不同),并且容易出错(文本解析失败时,最终可能会在邮件中出现令人尴尬的文本片段)。

只需直接将其追加:

var signature = "\n\n--\nFirstName LastName"; 
// ... 
MailApp.sendEmail(... +signature, options); 

(顺便说一句,Gmail网络界面和Gmail移动应用具有不同一般的用户签名,所以有另外一个脚本生成的消息似乎并不寻常。 )