Envoyer des emails manuellement depuis Gmail est une tâche chronophage, surtout lorsque vous devez gérer des campagnes marketing, des notifications ou des relances. Heureusement, il existe des solutions pour automatiser ce processus, comme l’utilisation de n8n, un outil d’automatisation open-source, couplé à un VPS pour une exécution fiable et scalable.
Dans ce guide, nous allons explorer comment configurer un workflow d’automatisation pour envoyer des emails via Gmail en utilisant n8n sur un serveur privé virtuel (VPS). Vous découvrirez les étapes clés, les bonnes pratiques et les pièges à éviter pour mettre en place une solution robuste et sécurisée.
Pourquoi automatiser l’envoi d’emails Gmail avec n8n sur un VPS ?
Les limites des envois manuels depuis Gmail
Gmail impose des restrictions strictes sur l’envoi d’emails, notamment en termes de volume quotidien (500 emails/jour pour les comptes gratuits, 2 000 pour les comptes payants). Ces limites peuvent rapidement devenir un frein pour les entreprises ou les projets nécessitant une communication massive.
De plus, l’envoi manuel est source d’erreurs : oublis de destinataires, erreurs de personnalisation, ou encore risques de spam si les emails ne sont pas correctement structurés. L’automatisation permet de contourner ces problèmes tout en gagnant un temps précieux.
Les avantages de n8n pour l’automatisation des emails
n8n est une plateforme d’automatisation open-source qui se distingue par sa flexibilité et son interface visuelle intuitive. Contrairement à des outils comme Zapier ou Make, n8n peut être auto-hébergé sur un VPS, ce qui offre un contrôle total sur vos données et une meilleure sécurité.
Ses principaux atouts incluent :
- Intégration native avec Gmail : Connexion sécurisée via OAuth 2.0 pour envoyer des emails sans risque.
- Personnalisation avancée : Utilisation de variables dynamiques pour adapter le contenu des emails en fonction des données d’entrée.
- Planification flexible : Exécution des workflows à intervalles réguliers ou déclenchée par des événements (nouveau lead, date d’échéance, etc.).
- Coût réduit : Pas de frais d’abonnement, uniquement le coût d’un VPS (à partir de 5€/mois).
Pourquoi choisir un VPS plutôt qu’un hébergement cloud ?
Un VPS (Virtual Private Server) offre plusieurs avantages par rapport à des solutions cloud comme AWS ou Google Cloud :
- Contrôle total : Accès root pour installer des dépendances spécifiques et configurer l’environnement selon vos besoins.
- Coût maîtrisé : Pas de frais cachés ni de tarification complexe, contrairement à certains services cloud.
- Performance optimisée : Ressources dédiées (CPU, RAM) pour garantir la stabilité des workflows.
- Sécurité renforcée : Possibilité de configurer un pare-feu, des sauvegardes automatiques et un chiffrement des données.
Des hébergeurs comme OVH, Scaleway ou Hetzner proposent des VPS performants à des prix compétitifs, idéaux pour héberger n8n.
Prérequis : Configurer votre environnement avant l’automatisation
1. Créer un compte Gmail dédié (recommandé)
Pour éviter les restrictions et les risques de blocage, il est conseillé d’utiliser un compte Gmail dédié à l’automatisation. Voici pourquoi :
- Éviter les limitations de volume sur votre compte personnel.
- Isoler les emails automatisés des communications professionnelles ou personnelles.
- Faciliter la gestion des autorisations et des accès.
Assurez-vous que le compte dispose d’un mot de passe robuste et activez la validation en deux étapes pour renforcer la sécurité.
2. Configurer une application OAuth 2.0 dans Google Cloud
Pour que n8n puisse envoyer des emails via Gmail, vous devez créer une application OAuth dans Google Cloud Console. Voici les étapes :
- Créer un nouveau projet : Donnez-lui un nom explicite (ex: « n8n-gmail-automation »).
- Activer l’API Gmail : Allez dans « API et Services » > « Bibliothèque », puis recherchez « Gmail API » et activez-la.
- Configurer les identifiants OAuth :
- Dans « API et Services » > « Identifiants », cliquez sur « Créer des identifiants » > « ID client OAuth ».
- Choisissez « Application Web » comme type d’application.
- Ajoutez une URI de redirection autorisée :
https://votre-domaine.com/rest/oauth2-credential/callback(remplacez par votre domaine ou l’IP de votre VPS si vous n’avez pas de domaine). - Notez l’ID client et le secret client générés.
- Ajouter le compte de service à Gmail :
- Dans « API et Services » > « Identifiants », cliquez sur « Créer des identifiants » > « Compte de service ».
- Générez une clé JSON et téléchargez-la. Cette clé sera utilisée pour authentifier n8n.
- Dans Gmail, allez dans « Paramètres » > « Transfert et POP/IMAP » > « Ajouter un compte de service » et autorisez le compte de service à envoyer des emails.
3. Installer n8n sur votre VPS
Plusieurs méthodes existent pour installer n8n sur un VPS. Voici la méthode recommandée via Docker, qui simplifie la gestion des dépendances :
- Se connecter à votre VPS :
ssh root@votre-ip-du-vps - Installer Docker et Docker Compose :
sudo apt update && sudo apt install -y docker.io docker-compose - Créer un dossier pour n8n :
mkdir ~/n8n && cd ~/n8n - Créer un fichier docker-compose.yml :
version: '3' services: n8n: image: n8nio/n8n restart: always ports:- "5678:5678"
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=votre-mot-de-passe-secure
- N8N_HOST=votre-domaine.com
- ./n8n-data:/home/node/.n8n
- Lancer n8n :
docker-compose up -d - Accéder à l’interface :
Ouvrez un navigateur et rendez-vous sur
https://votre-domaine.com:5678(ouhttp://votre-ip-du-vps:5678si vous n’avez pas de domaine).
Créer un workflow d’automatisation pour envoyer des emails Gmail avec n8n
Étape 1 : Configurer la connexion Gmail dans n8n
Avant de créer le workflow, vous devez ajouter vos identifiants Gmail dans n8n :
- Dans n8n, allez dans « Credentials » > « New Credential ».
- Sélectionnez « Gmail » comme type de credential.
- Dans l’onglet « OAuth2 », entrez :
- Client ID : L’ID client généré dans Google Cloud Console.
- Client Secret : Le secret client généré.
- Scope :
https://www.googleapis.com/auth/gmail.send(pour l’envoi uniquement) ouhttps://www.googleapis.com/auth/gmail.modify(pour lire/modifier les emails). - Auth URI :
https://accounts.google.com/o/oauth2/auth - Token URI :
https://oauth2.googleapis.com/token - Redirect URL :
https://votre-domaine.com/rest/oauth2-credential/callback
- Cliquez sur « Sign in with Google » et autorisez l’application.
Étape 2 : Concevoir le workflow d’envoi d’emails
Voici un exemple de workflow pour envoyer un email personnalisé à une liste de destinataires :
- Ajouter un nœud « Start » : Ce nœud déclenche le workflow (manuellement, via une API, ou planifié).
- Ajouter un nœud « Read Binary File » : Pour lire un fichier CSV contenant les destinataires et les données personnalisées.
- Sélectionnez le fichier CSV (ex:
contacts.csv). - Configurez le délimiteur (virgule par défaut).
- Sélectionnez le fichier CSV (ex:
- Ajouter un nœud « Loop Over Items » : Pour itérer sur chaque ligne du CSV.
- Dans « Loop Over », sélectionnez « JSON/CSV ».
- Ajouter un nœud « Set » : Pour extraire les données de chaque ligne.
- Dans « Values to Set », ajoutez les variables nécessaires (ex:
email,firstName,lastName).
- Dans « Values to Set », ajoutez les variables nécessaires (ex:
- Ajouter un nœud « Gmail » : Pour envoyer l’email.
- Sélectionnez la credential Gmail configurée précédemment.
- Dans « To », utilisez une variable dynamique :
{{ $json.email }}. - Dans « Subject », personnalisez le sujet :
Bonjour {{ $json.firstName }} !. - Dans « Message », rédigez le contenu HTML de l’email avec des variables :
<h1>Bonjour {{ $json.firstName }} {{ $json.lastName }}</h1> <p>Voici votre offre exclusive :</p> <ul> <li>Produit A : {{ $json.productA }}</li> <li>Produit B : {{ $json.productB }}</li> </ul>
- Ajouter un nœud « Wait » (optionnel) : Pour espacer les envois et éviter les blocages par Gmail (ex: 5 secondes entre chaque email).
Étape 3 : Planifier l’exécution du workflow
Pour automatiser l’envoi d’emails à intervalles réguliers :
- Ajoutez un nœud « Cron » en début de workflow.
- Configurez la planification :
- Exemple :
0 9 1-5(tous les jours de la semaine à 9h). - Ou déclenchez le workflow via une API externe (ex: un formulaire web).
- Exemple :
- Activez le workflow en cliquant sur « Execute Workflow ».
Exemple de workflow complet
Voici une capture d’écran simplifiée du workflow dans n8n :
Start → Read Binary File (CSV) → Loop Over Items → Set (Variables) → Gmail (Envoi) → Wait → End
Bonnes pratiques et pièges à éviter
1. Respecter les limites de Gmail pour éviter le blocage
Même avec une automatisation, Gmail peut bloquer votre compte si vous dépassez ses limites. Voici les bonnes pratiques :
- Limitez à 50 emails/heure : Pour éviter les blocages temporaires.
- Utilisez un compte dédié : Comme mentionné précédemment, isolez l’automatisation de votre compte principal.
- Ajoutez un délai entre les envois : Utilisez le nœud « Wait » pour espacer les emails (ex: 5 secondes).
- Surveillez les erreurs : Configurez des notifications en cas d’échec (ex: via un nœud « Slack » ou « Email » dans n8n).
2. Sécuriser votre VPS et n8n
Un VPS mal sécurisé peut exposer vos données ou être utilisé à des fins malveillantes. Voici comment sécuriser votre installation :
- Mettre à jour régulièrement :
sudo apt update && sudo apt upgrade -y - Configurer un pare-feu :
sudo ufw allow 22/tcp # SSH sudo ufw allow 5678/tcp # n8n sudo ufw enable - Désactiver l’accès root :
sudo passwd -l root - Utiliser HTTPS :
- Installez un certificat SSL avec Let’s Encrypt :
sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d votre-domaine.com - Configurez n8n pour utiliser HTTPS dans le fichier
docker-compose.yml:environment:- N8N_PROTOCOL=https
- N8N_HOST=votre-domaine.com
- Installez un certificat SSL avec Let’s Encrypt :
sudo tar -czvf n8n-backup-$(date +%Y-%m-%d).tar.gz ~/n8n/n8n-data
3. Optimiser les performances du workflow
Pour garantir une exécution fluide et rapide :
- Utilisez des expressions régulières pour valider les emails avant envoi :
{{ $json.email.match(/^[^s@]+@[^

