Script : envoyer des e-mails via Google Sheets

Voici une nouvelle astuce pour Google Sheets, permettant d’envoyer rapidement des e-mails prédéfinis depuis une feuille de calcul. Cette petite fonctionnalité va vous faire gagner en temps et en productivité, puisqu’elle va vous éviter d’aller taper vos mails manuellement, surtout lorsqu’il s’agit de mails récurrents et rébarbatifs liés à votre activité managériale ou opérationnelle.

Personnellement, je l’utilise afin d’informer mes collaborateurs que le planning de la semaine ou du mois est prêt. Planning que je partage avec eux de façon fragmentée, comme je l’explique dans ce tutoriel. Une fois le planning terminé, j’invite mes partenaires à le consulter et à me confirmer leur présence directement depuis Google Sheets, sans avoir à multiplier les tâches et les moyens d’information.

Voici la marche à suivre, relativement simple :

Créez votre newsletter

Ouvrez un nouveau document Google Sheets, puis entrez les adresses mail de vos futurs destinataires dans la première colonne. Ensuite, en face de chaque destinataire, tapez le message que vous voudriez envoyer à chacun :

planning-pret

Créez et lancez le script d’envoi de mails

Cliquez sur « Outils > Editeur de scripts » et copiez-collez le script suivant :

function sendEmails() {
 var sheet = SpreadsheetApp.getActiveSheet();
 var startRow = 2; // Tapez la première ligne à traiter
 var numRows = 2; // Tapez ici le nombre total de lignes à traiter
 var dataRange = sheet.getRange(startRow, 1, numRows, 2)
 // Fetch values for each row in the Range.
 var data = dataRange.getValues();
 for (i in data) {
 var row = data[i];
 var emailAddress = row[0]; // 0 si les mails sont dans la première colonne
 var message = row[1]; // 1 si le message se situe dans la seconde colonne
 var subject = "Objet de votre mail"; // Tapez l'objet du mail que vous allez envoyer
 MailApp.sendEmail(emailAddress, subject, message);
 }
}

Enregistrez le script. Lorsque vous aurez besoin de notifier les destinataires de votre mail, vous n’aurez plus qu’à cliquer sur « Editeur de scripts », puis à sélectionner « SendEmails » la liste des fonctions (surtout si vous avez d’autres fonctions dans votre éditeur), puis à cliquer sur le bouton « run » (en forme de bouton play).

sendemail-googlesheets

Google vous demandera d’autoriser la fonction, puis les e-mails seront alors envoyés aux destinataires paramétrés dans votre tableau.

Dans le cas d’un planning : être notifié de la confirmation des destinataires

Si vous souhaitez tout comme moi utiliser ce script pour envoyer un planning à vos collaborateurs, vous pouvez également inviter ces derniers à taper « OK » dans leur planning afin qu’ils le confirment. Et pour que vous soyiez notifié de leur confirmation,il faut vous rendre dans les plannings de chacun, et que vous cliquiez sur « Outils > Règles de notification ».

notifications-google-sheets

Je vous conseille de cocher la case « être informé des modifications qui sont apportées », ainsi que « E-mail (résumé quotidien) », afin d’avoir un mail englobant plusieurs confirmations et pas un mail à chaque fois que quelqu’un confirme le planning.

Source : Google Developers.

7 réponses

  1. Bonjour, merci pour ce script.
    Je cherche quelque chose de particulier, et je n’arrive pas à trouver : pouvez-vous m’aider ?

    En fait avec le même principe, je voudrais envoyer une liste de mails depuis sheet, mais en précisant une date d’envoi (qui peut être différente pour chaque email), avec une récurrence (tous les mois par exemple). Est-ce possible ?

    Merci, Cordialement.

  2. Bonjour ! super script merci ! est il possible que le script détecte le nombre de lignes qui contiennent un e-mail ?(pour eviter d’avoir un message d’erreur si il y a des lignes vide)

  3. Bonjour,
    Je reçois cette erreur:
    Invalid email: test (line 13, file « Code »)

    Comment puis-je faire?

    Merci!

  4. Bonjour

    suite à votre explication, je souhaiterais envoyer le fichier complet (Fichier de demandes de congés).
    Ce fichier partirait à 4 personnes : 3 personnes + la personne qui créer la demande.
    serait il possible d’avoir le code pour faire l’envoi du fichier complet

    Merci pour votre aide

  5. Je souhaiterai creer un message automaitique de rappel pour le reporting de certains données à partir de
    différentes feuilles de calcul dans un même classeur
    à differentes personnes adresses
    differentes mensuelle ok
    exemple
    Merci de me renseigner les heures adresse 1
    Merci de me renseigner les kilometrages adresse 2
    Merci de me renseigner la consomamtion d’eau adresse 3

  6. Bonjour, merci pour votre super boulot !

    Est-il possible de conserver une certaine mise en page dans le messages (retour à la ligne, couleur, gras etc..) ou dois-je me contenter d’un simple texte?

    Merci infiniment d’avance pour votre réponse,

    Bien à vous,

    Louis JAubert

  7. Bonjour Louis

    J’ai trouvé comment faire des sauts à la ligne mais reste à savoir comment faire le reste de la mis en page. Par ex, le texte est comme serrer dans une colonne non visible, il ne s’étend pas sur la largeur de la page message gmail.

    pour un saut à la ligne insérer la commande \n\n entre des apostrophes
    voila ma ligne de commande
    var message = Bonjour + ‘\n\n’ +message1 + ‘\n\n’ + politesse + ‘\n\n’+ signature;

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.