Un mailtrap ou mailcatcher qu’est ce que c’est ?
C’est avant tout un outil mail pour les développeurs mais qui peut avoir d’autres utilités. Cet outil va agir comme un SMTP qui au lieu de relayer les mail vers les serveurs destinataire, va les garder, les lister et les afficher. Il va permettre de voir ce que les destinataires reçoivent.
Il existe des solutions en ligne (Mailtrap.io par exemple), mais celà oblige à ouvrir un port en sorti, et quand vous êtes sur des plates-formes de test ou de pré-production (plus sensibles aux failles), il vaut mieux héberger son propre service. De plus, aucune chance que les mails de tests sortent du réseau.
Je vous propose donc après un petit tuto pour la mise en place de mailcatcher: simple et efficace.
Pour les développeurs
Les développeurs, vont ainsi pouvoir développer des systèmes de notification par mail, des gestionnaire de relance ou de newsletters, en utilisant une base d’adresses email réelles. Les mail seront généré et envoyés, mail le destinataire ne les recevra pas. Le mailcatcher les gardera pour lui. Une interface permet de les visualiser pour vérifier le contenu et la mise en forme.
Pour les Admin
Les administrateurs réseau et système peuvent aussi avoir besoin d’intercepter les mails pour debugguer un serveur mail ou trouver la provenance des mails d’un serveur hacké.
Mise en place
Il faut une toute petite machine avec peu de ressource. Je vais partir sur une debian.
apt-get install linux-headers-$(uname -r)
apt-get install nano build-essential rubygems ruby-dev libsqlite3-dev sqlite3
gem install mailcatcher
Configuration
Là rien de plus simple, il suffit de taper la commande
mailcatcher --smtp-ip 0.0.0.0 --smtp-port 1025 --http-ip 0.0.0.0 --http-port 1082
On lance donc manuellement la commande mailcatcher, qui va écouter le protocole SMTP quelque soit l’adresse IP sur le port 10025 et qui va écouter le protocole https quelque soit l IP de la machine sur le port 1082
Le tout en video:
pour aller plus loin
Nous allons automatiser le démarrage du service en créant un fichier
nano /home/usr/bin/mailtrap.sh
faites un copier coller du code suivant qui va permettre de lancer 3 instances de mailcatcher
#!/bin/bash
/usr/local/bin/mailcatcher
/usr/local/bin/mailcatcher --ip 0.0.0.0 --smtp-port 1026 --http-port 1081
/usr/local/bin/mailcatcher --ip 0.0.0.0 --smtp-port 1027 --http-port 1082
/usr/local/bin/mailcatcher --ip 0.0.0.0 --smtp-port 1028 --http-port 1083
Donnons les droits d’exécution au fichier
chmod a+x /home/usr/bin/mailtrap.sh
Vous n’avez plus qu’à exécuter le fichier travailler avec les instances. Vous pouvez aussi ajouter une ligne avec @reboot dans le cron pour que tout se lance au démarrage