- MailCatcher est un outil qui lance un serveur SMTP simple et affiche les e-mails reçus dans une interface web.
- Il suffit de configurer l’envoi des e-mails vers smtp://127.0.0.1:1025, puis de consulter les messages reçus sur http://127.0.0.1:1080.
- Fonctionnalités principales
- Reçoit et stocke tous les e-mails, puis affiche les versions HTML, texte brut et source.
- Réécrit le HTML pour permettre d’ouvrir les images intégrées et les liens dans une nouvelle fenêtre.
- Fournit une liste des pièces jointes et permet de les télécharger individuellement.
- Permet de télécharger l’e-mail original pour l’ouvrir dans le client de messagerie par défaut.
- Permet de modifier les paramètres IP et ports SMTP/HTTP par défaut via les options en ligne de commande.
- Dans les navigateurs prenant en charge WebSockets, les e-mails apparaissent immédiatement ; sinon, une mise à jour est effectuée toutes les 30 secondes.
- Peut être exécuté comme démon en arrière-plan, ou au premier plan.
- Fournit
catchmail, une commande de type sendmail qui facilite l’utilisation avec PHP.
- Prend en charge la navigation au clavier entre les messages.
- Installation et utilisation
- Installation possible avec la commande
gem install mailcatcher, puis exécution avec la commande mailcatcher.
- Envoyez les e-mails vers smtp://127.0.0.1:1025 et consultez-les sur http://127.0.0.1:1080.
- Les options en ligne de commande sont disponibles avec
mailcatcher --help.
- Bundler et RVM
- Il est recommandé de ne pas ajouter MailCatcher au Gemfile, mais de documenter son usage dans le README.
- En cas d’utilisation de RVM, il est conseillé de l’installer dans un gemset dédié afin d’éviter les conflits entre gems.
- Configuration de Rails et PHP
- Avec Rails, il s’utilise en ajoutant la configuration SMTP dans
environments/development.rb.
- Avec PHP, il s’utilise en configurant
sendmail_path dans php.ini ou dans la configuration Apache.
- Configuration de Django
- Avec Django, il s’utilise en ajoutant la configuration e-mail dans
settings.py.
- API
- Le schéma d’URL RESTful permet de télécharger la liste des messages au format JSON.
- Points d’attention
- Les fonctions de traitement des e-mails restent basiques, mais peuvent être adaptées selon les besoins.
- La prise en charge de l’encodage UTF-8 n’est pas complète ; il peut donc être nécessaire d’utiliser une bibliothèque e-mail appropriée.
- Feuille de route
- Ajout d’une fonctionnalité d’envoi d’e-mails à la demande.
- Tests de compatibilité avec les guidelines de design de CampaignMonitor et sa matrice de prise en charge CSS.
1 commentaires
Avis sur Hacker News
Cet outil est utile, mais sa maintenance a été arrêtée. C’est aussi le cas de MailHog. MailPit, MailCrab et smtp4dev sont des alternatives modernes.
Le mainteneur ne fait actuellement pas beaucoup de travail dessus, parce que l’outil est terminé. Il y aurait bien des choses à améliorer, mais rien qui n’augmenterait fortement ses fonctionnalités. En cas de problème, il corrige.
MailPit est écrit en Go, s’exécute comme un unique binaire statique et consomme très peu de ressources. Il est activement maintenu.
Je cherche un outil similaire pour intercepter des messages SMS dans un environnement de développement local. L’entreprise utilise Mailtrap comme outil de prévisualisation des e-mails, et cherche un équivalent pour les SMS envoyés via Twilio. Il existait le projet Twilio Dev Phone, mais il n’est plus maintenu.
Cet outil est destiné au développement et il est mature. Il y a eu de l’activité Git au cours de l’année écoulée. Si une fonctionnalité précise est importante, on peut soumettre une pull request ou envisager un don pour financer le développement.
J’ai commencé à utiliser smtp4dev récemment. Pour le développement local, le problème du « mailtrap » me semble déjà résolu. Il m’a fallu 15 minutes et 10 lignes de code pour l’ajouter au fichier Docker-compose, et ça fonctionne bien. La configuration du service est très simple via Docker/Podman.
J’utilise Mailcatcher pour développer des applications Rails, et c’est très simple à utiliser. Je ne pense pas avoir besoin d’autre chose. Merci à @sj26 et aux contributeurs.
J’utilisais MailCatcher, mais j’ai rencontré des problèmes en passant sur une machine Arm. J’utilise Mailpit en ce moment, mais la configuration est plus complexe. Comme MailCatcher semble avoir corrigé ses problèmes avec Arm, je pourrais peut-être revenir dessus.
J’ai longtemps utilisé smtp-sink, mais l’équipe préfère les outils avec interface graphique aux CLI, donc j’ai découvert Mailcatcher. C’est stable et ça fonctionne bien.
$ smtp-sink -u nobody -R /tmp/smtp-sink -d "maildir/%Y-%m-%d/mail.%H.%M." 127.0.0.1:25 1024L’usage habituel de ce type d’outil est de tester d’autres applications qui envoient des e-mails. Je me demande s’il existe d’autres usages.