Initial vault setup
This commit is contained in:
@@ -0,0 +1,153 @@
|
||||
---
|
||||
title: Mailpit
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, development, smtp, email, testing]
|
||||
confidence: high
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=Development, https://github.com/axllent/mailpit]
|
||||
---
|
||||
|
||||
# 💻 Mailpit
|
||||
|
||||
> **Serveur SMTP de test « catch-all » pour le développement** : intercepte les emails envoyés par vos apps en local, vous les visualise dans une UI web, sans jamais les envoyer au destinataire réel.
|
||||
|
||||
## 📋 Informations Générales
|
||||
|
||||
| Champ | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | [mailpit.axllent.org](https://mailpit.axllent.org/) |
|
||||
| **GitHub** | [axllent/mailpit](https://github.com/axllent/mailpit) |
|
||||
| **License** | MIT |
|
||||
| **Langage** | Go |
|
||||
| **Étoiles GitHub** | 9 597 ⭐ |
|
||||
| **Catégorie** | [[cat-development\|Development]] |
|
||||
| **Note** | 100% gratuit, pas d'édition payante, binaire unique léger |
|
||||
|
||||
## 📝 Description
|
||||
|
||||
**Mailpit** est un **serveur SMTP de test** pour le développement local. Il se comporte comme un vrai serveur SMTP, mais **intercepte tous les emails** au lieu de les relayer. Les développeurs peuvent ensuite les consulter via une **UI web intégrée**, comparable à Mailtrap ou MailHog, mais :
|
||||
|
||||
- **Léger** : un seul binaire Go, ~10 Mo
|
||||
- **Plus rapide** que MailHog (écrit en Go, pas en Go+JS)
|
||||
- **UI moderne** : SPA, dark mode, aperçus HTML
|
||||
- **API REST** pour intégration tests (vérifier qu'un mail a bien été reçu)
|
||||
- **Multi-domaines** et **multi-comptes** (capture tout par défaut)
|
||||
- **Support SMTP + HTTP** pour l'envoi depuis les apps
|
||||
- **TLS, PLAIN, CRAM-MD5, LOGIN** : toutes les auth SMTP
|
||||
|
||||
**Cas d'usage typiques** :
|
||||
|
||||
- Développer en local une app qui envoie des emails (sign-up, notifications, factures)
|
||||
- Tester les templates d'emails (HTML/CSS responsive)
|
||||
- Vérifier qu'un email de reset password part bien (sans spammer les vrais utilisateurs)
|
||||
- Tests d'intégration automatisés (API pour vérifier le contenu)
|
||||
- **Binaire unique** : idéal pour CI/CD et dev local
|
||||
|
||||
**Différence avec MailHog** : Mailpit a une **UI plus moderne**, des **performances supérieures** (Go natif, pas de daemon séparé), une **API HTTP** native et le support de **l'auth SMTP**.
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
### Via Docker Compose (recommandé)
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
version: '3.8'
|
||||
services:
|
||||
mailpit:
|
||||
image: axllent/mailpit:latest
|
||||
container_name: mailpit
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "1025:1025" # SMTP
|
||||
- "8025:8025" # UI web
|
||||
environment:
|
||||
- MP_MAX_MESSAGES=5000
|
||||
- MP_SMTP_AUTH_ACCEPT_ANY=1
|
||||
- MP_SMTP_AUTH_ALLOW_INSECURE=1
|
||||
volumes:
|
||||
- mailpit-data:/data
|
||||
networks:
|
||||
- proxy
|
||||
|
||||
volumes:
|
||||
mailpit-data:
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
```
|
||||
|
||||
### Binaire standalone (rapide en local)
|
||||
|
||||
```bash
|
||||
# macOS
|
||||
brew install mailpit
|
||||
|
||||
# Linux
|
||||
curl -L https://github.com/axllent/mailpit/releases/latest/download/mailpit-linux-amd64.tar.gz | tar xz
|
||||
sudo mv mailpit /usr/local/bin/
|
||||
|
||||
# Lancer
|
||||
mailpit
|
||||
# UI: http://localhost:8025
|
||||
# SMTP: localhost:1025
|
||||
```
|
||||
|
||||
### Configuration de votre app
|
||||
|
||||
Exemple avec `.env` pour une app Laravel / Django / Node.js :
|
||||
|
||||
```bash
|
||||
MAIL_MAILER=smtp
|
||||
MAIL_HOST=localhost # ou `mailpit` si dans Docker
|
||||
MAIL_PORT=1025
|
||||
MAIL_USERNAME=*** # (optionnel, vide par défaut)
|
||||
MAIL_PASSWORD=*** # (optionnel, vide par défaut)
|
||||
MAIL_ENCRYPTION=null
|
||||
```
|
||||
|
||||
## ⚙️ Configuration
|
||||
|
||||
1. **UI web** : http://localhost:8025 — voir tous les emails capturés, recherche, filtres
|
||||
2. **API REST** :
|
||||
- `GET /api/v1/messages` — liste des messages
|
||||
- `GET /api/v1/message/{id}` — contenu complet
|
||||
- `DELETE /api/v1/messages` — vider la boîte
|
||||
3. **Tags** : libeller les messages (`?tag=test`)
|
||||
4. **WebSocket** : l'UI se met à jour en temps réel
|
||||
5. **HTML/CSS preview** : visualiser le rendu responsive
|
||||
6. **Stockage** : en mémoire par défaut (fichier via `MP_DATABASE=/data/mailpit.db`)
|
||||
|
||||
## 🔗 Alternatives
|
||||
|
||||
- **MailHog** — L'ancêtre (Go), encore largement utilisé
|
||||
- **Mailtrap.io** — Service SaaS gratuit (limité)
|
||||
- **Smtp4dev** — Alternative .NET (Windows-friendly)
|
||||
- **Mailcatcher** (Ruby) — Historique, simple, peu maintenu
|
||||
- **Gmail SMTP + alias +** — Pas vraiment comparable, et dangereux en prod
|
||||
- **Ethereal Email** (Nodemailer) — Test éphémère, pas d'UI
|
||||
|
||||
## 🔒 Sécurité
|
||||
|
||||
- **Mailpit ne doit JAMAIS être exposé publiquement** (contient potentiellement des données sensibles : tokens de reset, secrets…)
|
||||
- **Par défaut, aucune authentification SMTP** : n'activez MP_SMTP_AUTH_* que si nécessaire
|
||||
- **Si accès réseau** : bind sur 127.0.0.1 ou derrière VPN
|
||||
- **Pas d'auth sur l'UI** : utiliser un reverse proxy avec auth si besoin
|
||||
- **Données effacées au redémarrage** (par défaut, in-memory) — comportement souhaité en dev
|
||||
|
||||
## 📚 Ressources
|
||||
|
||||
- [Documentation officielle](https://mailpit.axllent.org/docs/)
|
||||
- [GitHub axllent/mailpit](https://github.com/axllent/mailpit)
|
||||
- [API Reference](https://mailpit.axllent.org/docs/api-v1/)
|
||||
- [Configuration complète](https://mailpit.axllent.org/docs/configuration/)
|
||||
|
||||
## 🔗 Pages Liées
|
||||
|
||||
- [[cat-development]] — Catégorie Development
|
||||
- [[app-traefik]] — Reverse proxy (ne pas exposer Mailpit !)
|
||||
- [[recettes-docker-compose]] — Templates Docker
|
||||
- [[securisation-home-lab]] — Bonnes pratiques
|
||||
- [[app-gitea]] / [[app-gitlab]] — Forge Git (envoi de notifications mail)
|
||||
Reference in New Issue
Block a user