Serveur mail Postfix (envoi)
Configurer Postfix en relai d'envoi (MTA sortant) sur un VPS Linux HolyCloud permet à vos applications d'envoyer des e-mails (alertes, resets mot de passe). La réception complète et la délivrabilité exigent DNS (SPF, DKIM, DMARC) et une réputation IP propre — souvent difficile sur IP VPS neuves.
Prérequis
- VPS HolyCloud avec hostname FQDN (
mail.example.com→ IP du VPS) - Enregistrements DNS : A pour
mail.example.com, PTR/rDNS (demandez l'alignement à HolyCloud si possible) - Ports 25 (SMTP) et 587 (submission) — vérifiez qu'ils ne sont pas bloqués sortants par votre offre
- Accès sudo
Conseil : pour la production, un relais externe (Brevo, Mailgun, Amazon SES) améliore souvent la délivrabilité. Ce guide reste utile pour un envoi direct maîtrisé.
Étape 1 : installation
sudo apt update
sudo apt install -y postfix mailutils libsasl2-modules
Lors du dialogue Postfix, choisissez Internet Site et le nom de machine mail.example.com.
Étape 2 : configuration minimale /etc/postfix/main.cf
sudo postconf -e "myhostname = mail.example.com"
sudo postconf -e "mydomain = example.com"
sudo postconf -e "myorigin = \$mydomain"
sudo postconf -e "inet_interfaces = all"
sudo postconf -e "inet_protocols = ipv4"
sudo postconf -e "mydestination = localhost"
sudo postconf -e "relayhost ="
sudo postconf -e "smtpd_banner = \$myhostname ESMTP"
Limitez l'envoi aux utilisateurs locaux et SASL pour les apps :
sudo postconf -e "smtpd_tls_security_level = may"
sudo postconf -e "smtp_tls_security_level = may"
Étape 3 : authentification submission (port 587)
sudo nano /etc/postfix/master.cf
Décommentez et adaptez :
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
Pour un envoi simple sans boîtes mail, utilisez un utilisateur système et sendmail :
echo "Test depuis VPS HolyCloud" | mail -s "Test Postfix" [email protected]
Étape 4 : SPF, DKIM, DMARC
SPF (enregistrement TXT sur example.com) :
v=spf1 ip4:IP_PUBLIQUE_VPS_HOLYCLOUD -all
DKIM avec OpenDKIM :
sudo apt install -y opendkim opendkim-tools
sudo mkdir -p /etc/opendkim/keys/example.com
sudo opendkim-genkey -b 2048 -d example.com -D /etc/opendkim/keys/example.com -s default -v
sudo chown -R opendkim:opendkim /etc/opendkim
Publiez le contenu de default.txt en TXT default._domainkey.example.com.
Liez Postfix à OpenDKIM (/etc/opendkim.conf, socket inet, milter dans main.cf).
DMARC (TXT _dmarc.example.com) :
v=DMARC1; p=quarantine; rua=mailto:[email protected]
Étape 5 : restrictions anti-relay
sudo postconf -e "smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination"
sudo postconf -e "mynetworks = 127.0.0.0/8 [::1]/128"
Ne laissez jamais le VPS HolyCloud en open relay.
Étape 6 : logs et file d'attente
sudo systemctl restart postfix
sudo systemctl enable postfix
mailq
sudo tail -f /var/log/mail.log
Test SMTP :
swaks --to [email protected] --from [email protected] --server 127.0.0.1 --port 25
(sudo apt install swaks si besoin.)
Vérification
sudo postfix check
sudo postconf -n
dig +short TXT example.com
dig +short -x IP_PUBLIQUE_VPS_HOLYCLOUD
Envoyez un mail de test vers mail-tester.com et corrigez le score.
Besoin d'aide HolyCloud
- Mails en queue, pas de sortie : port 25 bloqué — contactez le support HolyCloud ou utilisez
relayhostvers un SMTP tiers (port 587) - Spam / rejet : PTR manquant, DKIM/SPF incorrects, IP neuve listée
- Support HolyCloud : extrait
mail.log,postconf -n, IP VPS et enregistrements DNS SPF/DKIM