Retourner sur le site

Serveur mail Postfix (envoi)

Configurer Postfix sur un VPS HolyCloud pour l'envoi de mails applicatifs (notifications, formulaires) avec authentification et anti-spam de base.

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 relayhost vers 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