Mailjet est un service de messagerie tiers à l'échelle mondiale dont la version gratuite permet aux utilisateurs de Compute Engine d'envoyer 6 000 e-mails par mois. Mailjet propose également :
- une API, une interface utilisateur et un relais SMTP permettant d'envoyer des e-mails transactionnels et marketing ;
- la conformité aux règles européennes en matière de confidentialité des données ;
- des fonctionnalités de messagerie et de délivrabilité, telles que les paramètres de priorité personnalisables et la gestion automatisée de la fréquence d'envoi ;
- une bibliothèque de ressources d'API dans les langages Go, PHP, Node.js, Java, Python et Ruby, afin de gérer les sous-comptes, l'authentification, les contacts, les campagnes, les charges utiles personnalisées, les statistiques, les événements en temps réel et les analyses via l'API Event ;
- un framework MJML intégré permettant de créer des modèles d'e-mail HTML réactifs ;
- une assistance qui suit les fuseaux horaires (24h/24 et 7j/7), disponible dans plus de quatre langues ;
- la possibilité d'envoyer des e-mails à partir d'autres domaines que
gmail.com
.
Ce document explique comment configurer votre instance de VM pour l'envoi d'e-mails via Mailjet à l'aide des méthodes suivantes :
- Via un relais SMTP avec :
- Postfix
- Nodemailer sur Node.js
- Directement via l'API Mailjet si vous utilisez Java
Pour obtenir une documentation complète sur d'autres solutions de messagerie, comme des exemples d'intégration aux bibliothèques, frameworks et serveurs SMTP les plus courants, consultez la documentation de Mailjet.
Avant de commencer
Créez un compte Mailjet sur la page des partenaires Google de Mailjet*. Lors de l'inscription, indiquez le domaine et l'adresse e-mail à partir desquels vous souhaitez envoyer des e-mails.
Assurez-vous que l'adresse e-mail à partir de laquelle vous souhaitez envoyer des e-mails a été validée.
Configurez une règle de pare-feu pour autoriser le trafic TCP sur le port 2525.
* Google est rémunéré pour les clients créant un compte payant.
Configurer Mailjet en tant que relais SMTP
En configurant Mailjet comme un relais de messagerie, vous pouvez transférer vers Mailjet des e-mails destinés à être distribués à distance.
Avec Postfix
Connectez-vous à votre VM à l'aide de SSH, en remplaçant
instance-name
par le nom de l'instance à partir de laquelle vous souhaitez envoyer des e-mails :gcloud compute ssh instance-name
Sur l'instance de VM, installez l'agent de transport de messages Postfix. Lorsque vous y êtes invité, acceptez les choix par défaut pour les noms de domaine, mais sélectionnez la configuration
Local Only
.Debian
sudo apt update && sudo apt -y install postfix libsasl2-modules
CentOS
sudo yum install postfix cyrus-sasl-plain cyrus-sasl-md5 -y
Modifiez les options de configuration de Postfix. Elles sont définies dans le fichier
main.cf
. Ouvrez-le avec l'éditeur de texte de votre choix.sudo vi /etc/postfix/main.cf
Mettez à jour le fichier :
Passez les lignes suivantes en commentaire :
# default_transport = error # relay_transport = error
Ajoutez les lignes suivantes à la fin du fichier :
relayhost = in-v3.mailjet.com:2525 smtp_tls_security_level = encrypt smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous
Ces lignes appliquent la compatibilité des protocoles SSL/TLS et configurent l'authentification SMTP pour ces requêtes. Un module de couche de sécurité et d'authentification simple (SASL, Simple Authentication and Security Layer) gère l'authentification dans la configuration de Postfix.
Enregistrez les modifications et fermez le fichier.
Créez la carte de mot de passe SASL avec l'éditeur de texte de votre choix :
sudo vi /etc/postfix/sasl_passwd
Dans le fichier
sasl_passwd
, ajoutez les lignes suivantes afin de fournir les identifiants pour Mailjet :in-v3.mailjet.com:2525 YOUR_API_KEY:YOUR_SECRET_KEY
Avec l'utilitaire
postmap
, générez un fichier.db
:sudo postmap /etc/postfix/sasl_passwd sudo ls -l /etc/postfix/sasl_passwd*
Vous devez obtenir la réponse suivante :
-rw------- 1 root root 68 Jun 1 10:50 /etc/postfix/sasl_passwd -rw------- 1 root root 12288 Jun 1 10:51 /etc/postfix/sasl_passwd.db
Ensuite, supprimez le fichier contenant vos identifiants, car il n'est plus nécessaire :
sudo rm /etc/postfix/sasl_passwd
Définissez les autorisations sur le fichier
.db
:sudo chmod 600 /etc/postfix/sasl_passwd.db sudo ls -la /etc/postfix/sasl_passwd.db
Enfin, rechargez votre configuration pour charger les paramètres modifiés :
Debian
sudo /etc/init.d/postfix restart
CentOS
sudo postfix reload
Testez la configuration. Installez le package
mailx
oumailutils
, puis testez votre configuration.Debian
sudo apt -y install mailutils
CentOS
sudo yum install mailx -y
Envoyez un message de test :
echo 'Test passed.' | mail -s 'Test-Email' -aFrom:from-email destination-email
Remplacez l'élément suivant :
from-email
: adresse e-mail validéedestination-email
: adresse à laquelle envoyer l'e-mail
Dans vos journaux système, recherchez une ligne d'état contenant
status
et le code de réponse du serveur indiquant le succès de l'opération ((250)
) :Debian
sudo tail -n 5 /var/log/syslog
CentOS
sudo tail -n 5 /var/log/maillog
Si vous rencontrez des problèmes lors de la configuration de Postfix avec Mailjet, consultez les instructions de Mailjet pour la configuration de Postfix.
Avec Nodemailer
Les instructions suivantes décrivent comment utiliser Mailjet avec Node.js sur Debian Wheezy.
- Connectez-vous à votre instance via SSH :
gcloud compute ssh instance-name
- Mettez à jour vos dépôts de packages :
user@test-wheezy:~# sudo apt update
- Installez les dépendances Node.js :
user@test-wheezy:~# sudo apt -y install git-core curl build-essential openssl libssl-dev
- Clonez le dépôt Node.js de GitHub :
user@test-wheezy:~# git clone https://github.com/nodejs/node
- Remplacez le répertoire par l'arborescence source de Node.js :
user@test-wheezy:~# cd node
- Configurez le logiciel de nœud pour ce système d'exploitation et cette machine virtuelle :
user@test-wheezy:~# ./configure
- Compilez Node.js, npm et les objets associés :
user@test-wheezy:~# sudo make
Cette opération peut prendre quelques minutes.
- Installez Node.js, npm et les autres logiciels à l'emplacement par défaut :
user@test-wheezy:~# sudo make install
- Installez le package mailer :
user@test-wheezy:~# npm install nodemailer nodemailer-smtp-transport
-
Dans le répertoire
node
, créez un fichier nommésendmail.js
contenant le code JavaScript suivant : - Exécutez le programme pour envoyer un e-mail via Mailjet :
user@test-wheezy:~# node sendmail.js
- Connectez-vous à votre instance via SSH :
gcloud compute ssh instance-name
- Mettez à jour les dépôts de packages :
user@test-centos:~# sudo yum update -y
- Installez les dépendances Node.js :
user@test-centos:~# sudo yum install git-core curl openssl openssl-dev -y ... user@test-centos:~# sudo yum groupinstall "Development Tools" -y ...
- Clonez le dépôt Node.js de GitHub :
user@test-centos:~# git clone https://github.com/nodejs/node
- Remplacez le répertoire par l'arborescence source de Node.js :
user@test-centos:~# cd node
- Configurez le logiciel de nœud pour ce système d'exploitation et cette machine virtuelle :
user@test-centos:~# ./configure
- Compilez Node.js, npm et les objets associés :
user@test-centos:~# sudo make
Cette opération peut prendre quelques minutes.
- Installez Node.js, npm et les autres logiciels à l'emplacement par défaut :
user@test-centos:~# sudo make install
- Installez le package mailer :
user@test-centos:~# npm install npm install nodemailer nodemailer-smtp-transport
-
Dans le répertoire
node
, créez un fichier nommésendmail.js
contenant le code JavaScript suivant : - Exécutez le programme pour envoyer un e-mail via Mailjet :
user@test-centos:~# node sendmail.js
Envoyer des e-mails via l'API Mailjet avec Java
Pour consulter plus d'exemples d'utilisation de l'API Mailjet, consultez la documentation officielle de Mailjet.
- Connectez-vous à votre instance via SSH :
gcloud compute ssh instance-name
- Mettez à jour vos dépôts de packages et installez les packages requis :
user@test-instance:~# sudo apt update && sudo apt install git-core openjdk-8-jdk maven
- Clonez le dépôt Java de GitHub :
user@test-instance:~# git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
- Accédez au code source principal de l'exemple, situé dans :
/root/java-docs-samples/compute/mailjet/src/main/java/com/example/compute/mailjet
-
Configurez vos paramètres Mailjet. Consultez la documentation Mailjet concernant l'authentification pour savoir comment remplacer les variables suivantes :
your-mailjet-api-key
: clé API pour votre compte Mailjet ;your-mailjet-secret-key
: clé secrète correspondante pour votre compte Mailjet.
- Dans le répertoire
mailjet
, utilisez Maven pour empaqueter la classe en tant que fichier JAR :user@test-instance:~# mvn clean package
- Assurez-vous que vous utilisez OpenJDK 8 :
user@test-instance:~# sudo update-alternatives --config java
- Pour envoyer un e-mail à partir du répertoire cible, exécutez le fichier JAR avec vos adresses e-mail d'expéditeur et de destinataire comme arguments :
user@test-instance:~# java -jar compute-mailjet-1.0-SNAPSHOT-jar-with-dependencies.jar recipient-email sender-email
- Connectez-vous à votre instance via SSH :
gcloud compute ssh instance-name
- Mettez à jour vos dépôts de packages et installez les packages requis :
user@test-centos:~# sudo yum update && sudo yum install git-core openjdk-8-jdk maven
- Clonez le dépôt Java de GitHub :
user@test-centos:~# git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
- Accédez au code source principal de l'exemple, situé dans :
/root/java-docs-samples/compute/mailjet/src/main/java/com/example/compute/mailjet
-
Configurez vos paramètres Mailjet. Pour savoir comment remplacer les variables suivantes, consultez la documentation Mailjet concernant l'authentification :
your-mailjet-api-key
: clé API pour votre compte Mailjet ;your-mailjet-secret-key
: clé secrète correspondante pour votre compte Mailjet.
- Dans le répertoire
mailjet
, utilisez Maven pour empaqueter la classe en tant que fichier JAR :user@test-centos:~# mvn clean package
- Assurez-vous que vous utilisez OpenJDK 8 :
user@test-centos:~# sudo alternatives --config java
- Pour envoyer un e-mail à partir du répertoire cible, exécutez le fichier JAR avec vos adresses e-mail d'expéditeur et de destinataire comme arguments :
user@test-centos:~# java -jar compute-mailjet-1.0-SNAPSHOT-jar-with-dependencies.jar recipient-email sender-email
Paramètres SMTP de Mailjet
Voici un récapitulatif des paramètres SMTP spécifiques de Mailjet utilisés pour configurer les clients :
- Hôte : in-v3.mailjet.com
- Port : 2525
Étapes suivantes
Découvrez des architectures de référence, des schémas et des bonnes pratiques concernant Google Cloud. Consultez notre Centre d'architecture cloud.