2017-08-07 1 views
1

Je travaille sur un script de notification par courrier électronique pour mon site Google, je l'ai testé et il fonctionne très bien, voici le code:Email un groupe et non des adresses individuelles avec Google App Script

var url_of_announcements_page = "https://sites.google.com/a/announcements"; 
var who_to_email = "[email protected]"; 

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()); 
} 

La seule Le problème est que je souhaite que plusieurs personnes reçoivent cet email. Je sais qu'il est possible de les ajouter un par un en utilisant une virgule après chaque adresse email. Cependant, c'est beaucoup de maintenance et je voulais passer à un groupe de contact Gmail pour accélérer la maintenance.

J'ai essayé de remplacer l'adresse e-mail par un groupe de contact que j'avais créé sur Gmail. Je l'avais appelé Test, et quand je l'ai remplacé [email protected] par le nom du groupe de contact je suis sorti avec cette erreur:

enter image description here

J'ai regardé en ligne et je ne peux pas trouver quelque chose qui me aide spécifiquement ma situation. J'ai donc deux questions:

  1. Y at-il un moyen de changer le code pour faire fonctionner le groupe de contact Gmail?
  2. Sinon, y a-t-il autre chose qu'un groupe de contact Gmail que je puisse utiliser pour cela?
+0

Vous pouvez utiliser l'option bcc avec une liste d'adresses e-mail séparées par des virgules et aucun destinataire ne peut voir les adresses e-mail des autres destinataires. Voici le [lien vers le document] (https://developers.google.com/apps-script/reference/mail/mail-app#sendEmail (Object)) – Cooper

Répondre

2

Vous devez d'abord obtenir l'adresse électronique à un tableau. Utilisez l'application Contacts pour obtenir le groupe Test, puis passez en revue tous les contacts pour obtenir leurs adresses.

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

utiliser la variable emails dans l'envoi ou le paramètre bcc Cooper suggéré.