Un site envoie plus d'e-mails qu'il n'y paraît : la notification d'un formulaire de contact, la confirmation d'une commande, le lien pour récupérer le mot de passe. Par défaut, le serveur les envoie lui-même, « à la main », et les grands fournisseurs de messagerie se méfient d'un serveur quelconque : beaucoup finissent dans le spam ou sont carrément rejetés. La solution habituelle est que le site remette ses e-mails à un service spécialisé, et Amazon SES est l'un des moins chers et des plus fiables.
La plupart des applications, WordPress compris, savent envoyer par SMTP, le protocole classique de l'e-mail. SES offre exactement cela : un serveur SMTP avec un identifiant et un mot de passe. Ce guide les crée et les met en place sur le site.
Avant de commencer : ce que signifie chaque chose
- SES
- Simple Email Service, le service d'Amazon pour que les applications envoient des e-mails.
- SMTP
- Le protocole avec lequel les programmes envoient des e-mails à un serveur de messagerie. Presque toute application le prend en charge : il lui faut seulement l'adresse du serveur, le port, un identifiant et un mot de passe.
- Identifiants SMTP
- L'identifiant et le mot de passe que SES vous donne pour envoyer par SMTP. Ce ne sont pas vos identifiants AWS : SES en crée de spécifiques.
- Identité vérifiée
- Un domaine ou une adresse e-mail dont vous avez prouvé à Amazon qu'il est à vous. On ne peut envoyer « depuis » qu'une identité vérifiée.
- Sandbox
- Le mode test dans lequel démarre tout compte SES : il ne permet d'envoyer qu'à des adresses vérifiées. Pour un site réel, il faut demander à en sortir (guide dans cette section).
- Port 587 et TLS
- Le port est la « porte » du serveur par laquelle on envoie ; 587 est la porte standard pour l'envoi authentifié. TLS (ou STARTTLS) est le chiffrement de la connexion.
- Région
- L'endroit du monde où se trouve votre SES. L'adresse du serveur SMTP inclut la région.
Pas à pas
Vérifiez que l'expéditeur est vérifié
Dans la console SES, choisissez la région que vous allez utiliser (par exemple Irlande,
eu-west-1) et entrez dans Identités. Le domaine depuis lequel envoie le site (midominio.com) doit apparaître comme vérifié, ou au moins l'adresse exacte (web@midominio.com). S'il n'y a rien, vérifiez le domaine en suivant le guide DKIM, SPF et DMARC de cette section : sans cela, SES ne laissera pas envoyer et les e-mails iraient de toute façon dans le spam.Créez les identifiants SMTP
Dans le menu de SES, Paramètres SMTP. Notez l'adresse du serveur, de la forme
email-smtp.eu-west-1.amazonaws.com, et le port 587. Cliquez sur Créer des informations d'identification SMTP : cela vous mène à IAM avec un nom d'utilisateur proposé (quelque chose commeses-smtp-user) ; vous pouvez le remplacer parsmtp-web-empresapour savoir à quoi il sert. Créez l'utilisateur et, sur le dernier écran, téléchargez ou copiez l'identifiant et le mot de passe SMTP. Le mot de passe n'est affiché que cette fois-ci. Conservez-le dans un gestionnaire de mots de passe.Configurez WordPress
Installez une extension d'envoi par SMTP (il y en a plusieurs très utilisées ; cherchez « SMTP » dans l'installateur d'extensions). Dans sa configuration, choisissez « Autre SMTP » ou « Amazon SES par SMTP » et remplissez : serveur
email-smtp.eu-west-1.amazonaws.com, port587, chiffrement TLS, authentification activée, identifiant et mot de passe SMTP de l'étape 2. Adresse et nom de l'expéditeur : une adresse de votre domaine vérifié (web@midominio.com) et le nom de votre entreprise. Enregistrez.Ou configurez n'importe quelle autre application
Les cinq mêmes données servent pour tout programme qui envoie des e-mails : serveur, port 587, TLS, identifiant et mot de passe. Dans une application à vous, elles vont généralement dans un fichier de configuration ou dans des variables d'environnement ; ne les écrivez pas dans le code. Si l'application le permet, ajoutez aussi un en-tête ou une étiquette qui identifie de quel site viennent les e-mails : cela vous aidera quand vous en aurez plusieurs.
Envoyez un test
Les extensions SMTP ont un bouton « envoyer un e-mail de test ». Envoyez-le à un compte à vous. Si vous êtes encore dans le sandbox de SES, ce compte doit être une adresse vérifiée dans SES ; sinon, SES rejettera l'envoi avec un message clair. Ouvrez l'e-mail reçu et vérifiez que l'expéditeur est le vôtre et qu'il n'est pas tombé dans le spam.
Demandez à sortir du sandbox et surveillez les envois
Pour que le site puisse écrire à n'importe quelle adresse, demandez à AWS la sortie du sandbox (guide dans cette section). Ensuite, dans SES, Tableau de bord du compte, vous verrez combien d'e-mails partent chaque jour et quel pourcentage rebondit ou est signalé comme spam. Regardez cet écran de temps en temps : c'est la santé de l'e-mail de votre site.
Ce qui peut mal tourner
L'e-mail de test échoue avec « Email address is not verified »
Soit l'expéditeur n'est pas une identité vérifiée dans cette région, soit vous êtes dans le sandbox et le destinataire ne l'est pas non plus. Vérifiez la région du serveur SMTP et celle de l'identité : elles doivent coïncider.
Échec avec « authentication credentials invalid »
Les identifiants SMTP ne sont pas les clés d'accès normales d'IAM, même s'ils y ressemblent : il faut utiliser exactement le mot de passe SMTP que SES a généré. Si vous l'avez perdu, créez-en de nouveaux et supprimez l'ancien utilisateur.
L'envoi se fait, mais arrive dans le spam
Il manque l'authentification du domaine (DKIM, SPF, DMARC) ou le contenu ressemble à du spam. Suivez le guide de vérification du domaine ; ensuite, vérifiez que l'expéditeur est de votre domaine et non d'un domaine gratuit.
Le serveur ne peut pas se connecter par le port 587
Certains hébergements bloquent les ports de messagerie sortants. Essayez le 2587 (SES l'accepte aussi avec TLS) ou demandez à votre fournisseur de l'ouvrir. Sur les nouvelles machines Lightsail et EC2, AWS limite le port 25, mais le 587 fonctionne.
Dans Simplio
Dans Simplio, l'écran E-mail (SES) vous montre vos identités par région et vous dit si le domaine est vérifié et quels enregistrements DNS manquent ; d'un bouton, il génère des identifiants SMTP avec des permissions d'envoi uniquement et vous affiche les cinq données à coller dans WordPress ou dans votre application. Ensuite, vous voyez les envois, les rebonds et les plaintes de tous vos comptes au même endroit, avec une alerte par e-mail si le pourcentage de rebonds monte.
La même chose, dans AWS et dans Simplio
| Dans la console AWS | Dans Simplio | |
|---|---|---|
| Créer les identifiants et les configurer | SES, IAM, l'extension du site : 3 outils, 6 étapes, environ 20 minutes | Bouton « Identifiants SMTP » sur l'écran E-mail : il vous donne les 5 données prêtes à coller, 1 minute |
| Savoir si l'e-mail du site part bien | Entrer dans SES, région par région | Envoyés, rebonds et plaintes de tous vos comptes sur un seul écran, avec alerte s'ils s'emballent |
| Plusieurs sites et plusieurs comptes | Tout répéter sur chacun | La même chose, dans la même liste |