132 lines
4.8 KiB
Markdown
132 lines
4.8 KiB
Markdown
---
|
|
title: Postal
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, email, smtp, docker, ruby, auto-hebergement]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Email, https://github.com/postalserver/postal]
|
|
---
|
|
|
|
# 📧 Postal
|
|
|
|
> Serveur SMTP open source conçu pour **l'envoi d'emails transactionnels et marketing à grande échelle**, avec webmail et API REST intégrée.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [postal.atech.media](https://postal.atech.media) |
|
|
| **GitHub** | [postalserver/postal](https://github.com/postalserver/postal) |
|
|
| **License** | MIT |
|
|
| **Langage** | Ruby |
|
|
| **Étoiles GitHub** | 16 592 ⭐ |
|
|
| **Catégorie** | [[cat-email\|Email]] |
|
|
| **Mainteneur** | Atech Media (communautaire) |
|
|
|
|
## 📝 Description
|
|
|
|
**Postal** est un serveur SMTP complet développé initialement par **Atech Media** pour ses propres besoins d'envoi massif (notifications, marketing). Il se positionne comme une alternative open source à **SendGrid**, **Mailgun** ou **Amazon SES** : une stack que l'on peut auto-héberger.
|
|
|
|
**Forces** :
|
|
- **Web UI complète** pour gérer domaines, expéditeurs, routes, webhooks, bounces
|
|
- **API REST** complète pour l'envoi programmatique
|
|
- **Multi-domaine** natif (plusieurs organisations, pools IP)
|
|
- **Tracking** des ouvertures, clics, bounces, complaints
|
|
- **File de messages** robuste avec retry automatique
|
|
|
|
**Faiblesses** :
|
|
- Moins riche qu'un SendGrid (pas de templates visuels drag-and-drop)
|
|
- Nécessite de **gérer soi-même la réputation IP** (rDNS, SPF, DKIM, DMARC)
|
|
- Pas de webmail entrant (uniquement sortant) — pour lire les emails reçus, il faut un autre serveur (IMAP)
|
|
|
|
**Contexte** : Le projet est un fork/community-continuation de `atechmedia/postal`, qui était le repo d'origine. Il a été activement maintenu, bien que le rythme ait ralenti ces dernières années. Il reste une option solide pour l'envoi.
|
|
|
|
## 🚀 Installation
|
|
|
|
### Docker Compose (recommandé)
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
version: '3.8'
|
|
services:
|
|
postal:
|
|
image: ghcr.io/postalserver/postal:latest
|
|
container_name: postal
|
|
restart: unless-stopped
|
|
environment:
|
|
- POSTAL_HOSTNAME=postal.example.com
|
|
- POSTAL_PROTOCOL=https
|
|
volumes:
|
|
- postal-data:/opt/postal/data
|
|
ports:
|
|
- "25:25" # SMTP
|
|
- "587:587" # Submission
|
|
- "465:465" # SMTPS
|
|
depends_on:
|
|
- mysql
|
|
- redis
|
|
|
|
mysql:
|
|
image: mysql:8.0
|
|
container_name: postal-mysql
|
|
restart: unless-stopped
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: change-me-root
|
|
MYSQL_DATABASE: postal
|
|
MYSQL_USER: postal
|
|
MYSQL_PASSWORD: change-me-user
|
|
volumes:
|
|
- mysql-data:/var/lib/mysql
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
container_name: postal-redis
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
postal-data:
|
|
mysql-data:
|
|
```
|
|
|
|
### Installation manuelle
|
|
|
|
L'installation manuelle est documentée sur le repo : Ruby >= 3.0, MySQL/MariaDB, RabbitMQ ou Redis, Node.js pour les assets. Le helper `postal bootstrap` initialise la base et crée le premier admin.
|
|
|
|
## ⚙️ Configuration
|
|
|
|
1. **DNS** : Pointer un enregistrement A vers le serveur, créer un MX, configurer SPF/DKIM/DMARC pour chaque domaine expéditeur
|
|
2. **Reverse DNS (rDNS)** : Indispensable pour que les mails arrivent en Inbox — demander à l'hébergeur ou le configurer sur le VPS
|
|
3. **Certificat TLS** : Utiliser Let's Encrypt (ex. via Traefik ou Caddy en frontal)
|
|
4. **Credentials SMTP** : Créer des credentials via la web UI pour chaque application tierce
|
|
5. **Monitoring** : Connecter les webhooks Postal à Slack/Mattermost pour suivre bounces
|
|
|
|
## 🔗 Alternatives
|
|
|
|
- **[app-mailcow](app-mailcow)** — Suite mail complète (entrant + sortant + webmail)
|
|
- **[app-mailu](app-mailu)** — Plus simple, full-stack entrant/sortant
|
|
- **SendGrid / Mailgun / Amazon SES** — Services managés, pas d'auto-hébergé
|
|
|
|
## 🔒 Sécurité
|
|
|
|
- **Authentification SMTP** obligatoire avec mots de passe dédiés par application
|
|
- **SPF/DKIM/DMARC** strictement requis pour chaque domaine expéditeur
|
|
- **Webhooks signés** pour vérifier l'origine des callbacks (bounces, complaints)
|
|
- **Web UI derrière HTTPS** avec auth 2FA recommandée
|
|
- **Fail2ban** sur le port 25/587 contre le brute-force de credentials
|
|
|
|
## 📚 Ressources
|
|
|
|
- [Documentation officielle](https://postal.atech.media)
|
|
- [GitHub postalserver/postal](https://github.com/postalserver/postal)
|
|
- [Wiki et guides](https://github.com/postalserver/postal/wiki)
|
|
|
|
## Pages Liées
|
|
- [[cat-email]] — Toutes les apps Email du catalogue
|
|
- [[app-mailcow]] — Alternative plus complète (entrant + sortant)
|
|
- [[app-mailu]] — Plus simple à déployer
|
|
- [[app-stalwart]] — Serveur mail moderne en Rust
|
|
- [[securisation-home-lab]] — Sécuriser un serveur mail
|
|
- [[recettes-docker-compose]] — Templates Docker
|