Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
Configuration de Postfix sur la nouvelle infra des VM OVH
Depuis à peu prés fin 2017 OVH a changé drastiquement les procédures d'envoie d’émail notamment ceux qui passent par son serveur SMTP. La procédure ci-dessous décrit a configuration a appliqué sur les VM pour que Postfix marche correctement.
1 - Utiliser (ou créer) un DNS en ajlsm.com et pointant sur l'IP de la nouvelle VM. Exemple ad53.ajlsm.com
2 - Installer le paquet procmail. Installer le paquet postfix en mode Internet. Dans le champ nom du courrier, mettre le DNS créé précédement. Exemple ad53.ajlsm.com.
3 - Ouvrir le fichier /etc/postfix/main.cf et configurer comme suit (exemple pour vm ad53)
Ubuntu
[modifier | modifier le wikicode]smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
readme_directory = no
compatibility_level = 2
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = ad53
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname, ad53-2.ajlsm.com, ad53, localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
smtputf8_enable = no
smtputf8_autodetect_classes = all
sender_canonical_maps = regexp:/etc/postfix/sender_canonical # 2026 : Pour configurer le sender -> cf. conf en infra
Les champs importants à vérifier sont: myhostname myorigin mydestination mailbox_command
Modification de l’expéditeur (From) avec Postfix
[modifier | modifier le wikicode]Objectif
[modifier | modifier le wikicode]Remplacer l’expéditeur par défaut des mails système :
root@beotos3.ajlsm.com
par une adresse dédiée aux notifications techniques :
supervision@ajlsm.com
Cette méthode s’applique à tous les mails envoyés par root (cron, scripts, backups), sans modifier les scripts existants.
---
Configuration Postfix
[modifier | modifier le wikicode]1. Déclarer la table de réécriture du sender
[modifier | modifier le wikicode]Éditer le fichier :
/etc/postfix/main.cf
Ajouter la ligne suivante :
sender_canonical_maps = regexp:/etc/postfix/sender_canonical
---
2. Définir la règle de réécriture
[modifier | modifier le wikicode]Créer ou éditer le fichier :
/etc/postfix/sender_canonical
Contenu :
/^root@.*/ supervision@ajlsm.com
Cette règle force tous les mails émis par root à utiliser supervision@ajlsm.com comme expéditeur.
---
3. Redémarrer Postfix
[modifier | modifier le wikicode]Commande :
systemctl restart postfix
---
Vérification
[modifier | modifier le wikicode]Envoyer un mail de test :
echo "Test sender rewrite $(date)" | mail -s "Postfix sender OK" arvers@ajlsm.com
Résultat attendu :
- En-tête du mail :
From: supervision@ajlsm.com
- Journal Postfix :
from=<supervision@ajlsm.com>
---
Remarques
[modifier | modifier le wikicode]- Configuration standard Postfix (sender_canonical_maps)
- Sans impact sur la délivrabilité (MX OVH)
- Fonctionne pour :
- cron - scripts shell - backups - alertes système
- Réversible en supprimant une seule ligne dans main.cf
---
Variante (optionnelle)
[modifier | modifier le wikicode]Forcer l’expéditeur pour tous les utilisateurs :
/.*/ supervision@ajlsm.com
CentOS
[modifier | modifier le wikicode]smtpd_banner = $myhostname ESMTP $mail_name
biff = no
append_dot_mydomain = no
compatibility_level = 2
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = centreon.ajlsm.com
mydomain = ajlsm.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
#myorigin = /etc/mailname
#mydestination = $myhostname, localhost.$mydomain, $mydomain
mydestination =
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
smtputf8_enable = no
smtputf8_autodetect_classes = all
4 - Relancer le service postfix
sudo service postfix restart
5 - Installer le paquet mailutils pour Ubuntu ou mailx pour CentOS
6 - Vérifier que l'envoie des emails fonctionne bien avec la commande: $ echo "Test mail" | mail -s "Test Postfix" ajlsm@ajlsm.com
7 - Si ça ne marche pas, relancer la VM pour être sûr que la config postfix est chargée
8 - Ubuntu : Si cela ne fonctionne pas et que le message /var/log/syslog renvoi une erreur de ce type :
...said: 504 5.5.2 <ajlsm@LEHOSTNAME>: Sender address rejected: need fully-qualified address (in reply to RCPT TO command))
Vérifiez que le hostname est bien FQDN : Fully Qualified Domain Name.
Par exemple, ad53 n'est pas FQDN, mais ad53.ajlsm.com est FQDN.
9 - CentOS : le fichier à suivre si les messages ne partent pas est : journalctl -xe.
Il semble que Postfix ne tienne pas toujours compte du hostname déclaré dans la config Postfix décrite ci-dessus.
Exemple tutoriel pour changer correctement le hostname : https://linuxize.com/post/how-to-change-hostname-on-ubuntu-18-04/
Une fois le hostname bien nommé, relancer le service postfix.