Dans ce tutoriel, nous allons voir comment envoyer des mails simples via Google Apps Script, en se basant sur les données d’un Google Sheets.
1. Formatage du Google Sheet
Avant toute chose, il faut formater correctement les données dans le Google Sheets. Partons sur un exemple basique, où nous avons :
- un email
- un sujet
- le contenu du mail

2. Principe du script
L’idée du script est la suivante :

- Accéder aux données du Google Sheets : Le script récupère les informations contenues dans la feuille de calcul, puis saute la première ligne qui sert d’en-tête
- Parcourir les lignes du tableau : Chaque ligne est analysée une à une pour extraire l’adresse email, le sujet et le corps du mail.
- Envoyer le mail : Pour chaque ligne, un email est envoyé basé sur les informations présentes sur la ligne
2. Le script
Pour ouvrir l’éditeur Apps Script depuis Google Sheets, allez dans :
Extensions > Apps Script
Si besoin, vous pouvez vous référer au guide Débuter avec Google Apps Script. Vous pouvez utiliser cette fonction et la modifier selon vos besoins. Elle est très commentée pour vous aider à comprendre le fonctionnement.
function sendEmailsFromSheet() {
// Indiquez le nom de votre feuille Google Sheets
const SHEET_NAME = "Emails"
// On récupère la feuille Google Sheets
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME);
// On extrait toutes les données de la feuille
const data = sheet.getDataRange().getValues();
// On vérifie s'il y a des données
// S'il y a moins de 2 lignes (les titres + une ligne de données )
// On arrête la fonction
if (data.length < 2) return;
// On enlève la première ligne (qui contient les titres)
// On considère qu'il y a
// - En colonne 1 : le mail
// - En colonne 2 : le sujet
// - En colonne 3 : le texte à envoyer (le corps du mail)
// Et on envoie le mail en utilisant la fonction MailApp.sendEmail
data.slice(1).forEach(([email, subject, body]) => {
// Si les 3 colonnes sont remplies, alors on envoie le mail
if (email && subject && body) {
MailApp.sendEmail({
to: email,
subject: subject,
body: body
});
}
});
Logger.log("Mails envoyés")
}
📌 Résumé du fonctionnement
- Le script récupère les données contenues dans la feuille
Emails
- Il vérifie qu’il y a au moins deux lignes (une ligne de titres + une ligne de données)
- Il ignore la première ligne (qui contient les titres)
- Il parcourt chaque ligne de données et récupère l’email, le sujet et le message
- Si toutes les informations sont renseignées, il envoie l’email avec la fonction
MailApp.sendEmail()
- Une fois toutes les lignes parcourues, il affiche le message
Mails envoyés
dans la console
3. Exécuter le script
Pour exécuter la fonction, cliquez sur Exécuter.
Si c’est la première fois, vous aurez besoin d’autoriser le script.

Le script va s’exécuter et les mails seront envoyés pour chaque ligne.

Une fois exécuté, un message Mails envoyés
s’affiche dans le journal d’exécution.

Côté Gmail, le mail s’est envoyé correctement.
Erreurs courantes
Voici les erreurs courantes que vous pouvez rencontrer sur ce script, et comment les résoudre.
Cannot read properties of null (reading ‘getDataRange’)

Cette erreur indique que les données du Sheet n’ont pas chargé correctement. Le plus souvent, c’est parce que le nom de la feuille Google Sheets dans la constante SHEET_NAME ne correspond pas avec le vrai nom de la feuille.
Vérifiez que nom de l’onglet Emails et le nom dans le script ligne 4const SHEET_NAME = "Emails"
soient identiques :

