2017-07-28 98 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移動應用具有不同一般的用戶簽名,所以有另外一個腳本生成的消息似乎並不尋常。 )