Mettre en place un serveur SMTP avec AWS SES
Dans le monde de l'informatique le serveur mail fait partie d'un des casse-têtes d’anthologie. Vous n'avez plus envie de vous prendre la tête le weekend? Passez à AWS!
En effet, amazon fournit une panoplie d'outils permettant de répondre aux rêves de tout adminsys ou devops.Ici nous nous intéresserons plus particulièrement au service SES (Simple Email Service). Tout est dans le nom, ce service vous permet d'herberger en quelque clique votre propre serveur stmp vous offrant ainsi la possibilité d'envoyer des milliers d'emails par jour. Et tout cela à moindre coût!
De base ce service est en mode sandbox, c'est à dire que son utilisation du service est limitéé. Ceci est dû au fait qu' Amazon veuille se protéger contre les spammeurs et personnes malintentionnés. Il ne sera donc possible dans ce mode d'envoyer des mails qu'à une whitelist (liste de mails validés) tout en observant une limite dans le quota d'utilisation de 200 emails par jour.
C'est pas très drôle tout ca ^^. Dans ce tuto seront abordés les mécanismes à mettre en place afin de remédier à ces limitations.
Étapes pour passer en mode production
Pour passer en mode production vous devez soumettre une requête au support aws. Nous allons illustrer étape par étape les démarches à effectuer afin d'utiliser votre serveur SMTP pour envoyer des mails à n'importe avec la signature de votre domaine ou de votre mail personnel.
1- Avoir un compte AWS
2- Se rendre sur le service SES et valider le domaine ou l’adresse email qui sera utilisée en signature de vos mails.
On entend par valider le fait de prouver que vous êtes bien le propriétaire du domaine ou de l'adresse email en question. Car une fois la propriété prouvée AWS se fera passer pour vous.
Si vous optez pour une vérification domaine vous pourrez envoyer des mails avec n'importe quel nom.
Par exemple après la validation de test.fr, vous pourrez envoyer des mails en tant que toto@test.fr, titi@test.fr etc...
Si par contre en optant pour la validation email vous ne pourrez utiliser que l comme signature.
Demande de validation E-mail
Une fois la demande lancée un email sera envoyé à l'adresse à valider. Il vous suffira de suivre le lien pour finaliser la validation de l'adresse.
Validation du domain
Quant à la validation du domaine, l'ajout du TXT fourni par AWS dans votre gestionnaire d'enregistrement DNS suffira pour confirmer la propriété.
3- Configuration du serveur SMTP
Maintenant que les emails et/ou domaines sont validés, il ne reste plus qu'à configurer les identifiants permettant de se connecter au serveur SMTP.
Pour cela, se rendre dans la section SMTP settings et cliquer sur le bouton create My SMTP credentials.
Génération des identifiants SMTP
Suivre les instructions à la fin, les identifiants générés seront accessibles en téléchargement et en copier-coller.
Les identifiants
Et voila! Le serveur SMTP est prêt à être utilisé.
En gros, ils veulent connaître l'origine des adresses mails vers lesquelles vous souhaitez effectuer des envois. Mais surtout comment vous gérez les cas d'erreurs.
En effet, dans le monde du mailing, il y a deux cas d'erreurs majeures les bounces et les complaints.
Les bounces, représentent les cas ou l'email n'a pu être délivré car le destinataire n'existe pas, ou n'existe plus.
Les complaints, représentent les cas ou le destinataire à bien reçu votre mail mais ne souhaite plus le recevoir :). Du coup, si vous n'êtes pas un spammeur, vous devrez enlever le destinataire de votre mailing list.
Les types d'érreurs
Il ya différentes manières de gérer les cas d'erreurs, vous pourrez utiliser le sdk fourni par amazon pour gérer ces cas directement dans votre application (java, node ect...).
Autrement, pour les personnes n'utilisant pas d'applications ou n'ayant pas les ressources pour implementer le sdk, il ya une solution alternative.
A savoir, créer des topics AWS ou encore SNS (Simple Notification Service). Comme son nom l'indique c'est un simple service de notification dont par lequel nous allons transiter afin de recevoir des notifications mails en cas d'erreurs lors des envois. Et en conséquence, s'engager à modifier notre mailing en fonction.
4- Configuration des topics
Se rendre dans le service SNS et lancer la création d'un topic pour les notifications bounces.
Creation du topic bounce
Une fois le topic crée, mettre en place une liaison avec l'email de réception des notifications des erreurs.
Creation d'une subscription
Répéter le processus, pour le topic qui sera utilisé pour les complaints.
5- Liaison finale entre SES et SNS
Pour finir, il ne reste plus qu'à faire la liaison entre nos domaines ou emails validés et les topics.
Pour cela, il faut retourner dans SES sélectionner le domaine ou l'email à configurer, puis cliquez sur view details.
Ainsi vous aurez accès à la configuration du système de notification dans la section notifications.
Configuration des notifications
Cf image ci-dessus vous n'avez plus qu'à sélectionner vos topics qui devraient automatiquement apparaître dans la liste de section (attention à la region aws de création).
Sauvegarder et voila! Il ne vous reste plus qu'à ouvrir une SES Sending Limits Increase case dans le Centre de support. Suivre les instructions et vous serez notifié par AWS du passage en production (augmentation du quota et la possibilité d'envoyer des emails partout dans le monde).