Envoyer des Emails depuis Google Sheets avec Apps Script

Envoyer des emails directement depuis Google Sheets peut simplifier vos tâches administratives et vous faire gagner du temps. Cet article va vous guider pas à pas pour configurer un script Google Apps Script qui enverra des emails à partir de vos feuilles de calcul en utilisant SMTP. Vous verrez des exemples de code, la configuration SMTP, et la personnalisation de votre script pour répondre à différents cas d’usage.

Table des Matières


Introduction à Google Apps Script

Google Apps Script est un langage de script basé sur JavaScript, conçu pour automatiser des tâches sur Google Workspace. Il peut vous aider à manipuler des données dans Google Sheets et à exécuter des actions telles que l’envoi d’emails.

En utilisant Apps Script, vous pouvez :

  • Créer des automatisations pour des tâches répétitives
  • Envoyer des notifications par email directement depuis une feuille de calcul
  • Intégrer des fonctionnalités avancées via des scripts personnalisés

Cet article vous montrera comment configurer un script pour envoyer des emails en utilisant les données présentes dans vos feuilles de calcul Google Sheets.

Configuration SMTP pour Envoyer des Emails

Pour envoyer des emails via SMTP dans Google Apps Script, vous avez besoin des paramètres SMTP de votre fournisseur d’email. SMTP (Simple Mail Transfer Protocol) permet d’envoyer des emails via des serveurs de messagerie. Voici comment configurer cela.

Étape 1 : Récupérez vos Informations SMTP

  1. Serveur SMTP : Chaque fournisseur a ses propres paramètres SMTP. Par exemple :
    • Gmail : smtp.gmail.com
    • Outlook : smtp-mail.outlook.com
    • Yahoo : smtp.mail.yahoo.com
  2. Port : 587 (TLS) ou 465 (SSL)
  3. Nom d’utilisateur : Votre adresse email complète
  4. Mot de passe : Le mot de passe de votre compte email (ou un mot de passe d’application si nécessaire)

Étape 2 : Configurez le Script pour Utiliser SMTP

Avant de commencer, vous devez ajouter une bibliothèque Apps Script qui prend en charge l’envoi d’emails SMTP, car Apps Script utilise normalement son propre système d’envoi d’emails.

  • Allez dans Bibliothèque sous Ressources.
  • Ajoutez l’ID de bibliothèque : 1hF5iR5Bv0WTF9w7O3sBd_P8ynEqbY5Xb7uN4Cav-Mhs pour activer la bibliothèque SMTPApp.

Créer un Script de Base pour Envoyer un Email

Avec la configuration SMTP en place, vous pouvez maintenant créer un script de base pour envoyer un email simple. Ce script utilise les informations que vous avez configurées pour envoyer l’email.

function envoyerEmailSMTP() {
  const email = "exemple@domaine.com"; // Adresse de l'expéditeur
  const destinataire = "destinataire@domaine.com"; // Adresse du destinataire
  const sujet = "Test de l'envoi d'email via SMTP";
  const message = "Bonjour, ceci est un test de Google Apps Script utilisant SMTP.";

  const options = {
    auth: {
      user: "votre_adresse@domaine.com",
      pass: "votre_mot_de_passe"
    },
    host: "smtp.votreFournisseur.com",
    port: 587, // Utilisez 465 si votre SMTP nécessite SSL
    secure: false, // Définissez à true si vous utilisez SSL
  };

  SMTPApp.sendEmail(destinataire, sujet, message, options);
}

Ce code envoie un email à une adresse spécifique en utilisant vos informations SMTP.

Récupérer les Données depuis Google Sheets

Pour envoyer des emails en masse, vous voudrez peut-être récupérer des données directement depuis Google Sheets. Supposons que vos données d’email se trouvent dans la colonne A de votre feuille.

Exemple de Code pour Récupérer des Emails depuis une Feuille

Le script suivant envoie un email à chaque adresse listée dans la colonne A :

function envoyerEmailsDepuisSheet() {
  const feuille = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Feuille1");
  const range = feuille.getRange("A2:A" + feuille.getLastRow());
  const emails = range.getValues().flat();

  emails.forEach(email => {
    envoyerEmailSMTP(email, "Votre Sujet", "Message personnalisé ici");
  });
}

Ce script collecte toutes les adresses email à partir de la colonne A et envoie un email à chaque adresse.

Personnalisation du Corps de l’Email

Pour un impact plus personnalisé, vous pouvez inclure des informations spécifiques au destinataire dans chaque email.

Exemple de Personnalisation

Imaginons que la colonne B contienne le prénom du destinataire. Voici comment personnaliser chaque email :

function envoyerEmailsPersonnalises() {
  const feuille = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Feuille1");
  const range = feuille.getRange("A2:B" + feuille.getLastRow());
  const data = range.getValues();

  data.forEach(row => {
    const email = row[0];
    const prenom = row[1];
    const message = `Bonjour ${prenom},\n\nCeci est un message personnalisé !`;

    envoyerEmailSMTP(email, "Votre Sujet Personnalisé", message);
  });
}

Ce script utilise le prénom de chaque destinataire pour personnaliser le corps de l’email.

Tester et Automatiser votre Script

Pour vous assurer que votre script fonctionne correctement, effectuez quelques tests et planifiez l’exécution automatique du script.

Tester votre Script

  • Allez dans Exécuter > Fonction et sélectionnez envoyerEmailsDepuisSheet ou envoyerEmailsPersonnalises.
  • Si c’est la première exécution, Google vous demandera l’autorisation d’accès.

Automatiser avec un Déclencheur

Pour automatiser l’envoi d’emails :

  • Allez dans Éditeur de script > Déclencheurs.
  • Ajoutez un déclencheur pour que votre script s’exécute à une heure précise (quotidienne, hebdomadaire, etc.).

Tableau Récapitulatif

Fonctionnalité Description
Configuration SMTP Définir les informations SMTP pour l’envoi d’emails
Script de base Script de base pour envoyer un email unique
Récupération des emails Récupérer des emails depuis une feuille Google Sheets
Personnalisation Ajouter des informations personnalisées dans l’email
Automatisation Planifier l’exécution automatique du script

Avec cet outil en place, vous pouvez désormais envoyer des emails à vos contacts depuis Google Sheets sans effort supplémentaire. Profitez-en pour simplifier vos tâches de communication et gagner du temps!