Un mailtrap pourquoi comment ?

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

Leave Comment

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *