[MAC/LINUX] Postfix configuration serveur smtp relay

mercredi 19 décembre 2018

Sur mon mac, ou sur les serveurs Linux, on peut configurer postfix server de relay smtp.
Par défaut sur mac ce service est installé.
Sous linux:

apt install postfix
Il suffit donc de le configurer correctement.
Il est installé par défaut dans

/etc/postfix

Il faut aussi être sur que le serveur linux possède son module sasl pour sécuriés les mails avec google:

apt install libsasl2-modules

Sans quoi on obtient l’erreur suivante SASL authentication failed; dans /var/log/mail.log

Le fichier principal de configuration se trouve:

sudo nano /etc/postfix/main.cf

Ce fichier est très important et change en fonction des versions de votre Mac OS X.

Dans mon cas, j’utilise postfix comme relai vers GMAIL

mail_owner = postfix
inet_protocols = all

# Postfix as relay
#
#Gmail SMTP
relayhost=[smtp.gmail.com]:587
# Enable SASL authentication in the Postfix SMTP client.
smtpd_sasl_auth_enable=yes
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =
smtp_sasl_mechanism_filter = AUTH LOGIN
# Enable Transport Layer Security (TLS), i.e. SSL.
smtp_use_tls=yes
smtp_tls_security_level=encrypt
tls_random_source=dev:/dev/urandom

compatibility_level = 2

Ensuite, il faut configurer les credentials de votre compte GMAIl pour le smtp.

Pour cela on rajoute le username/mot de passe dans

sudo nano /etc/postfix/sasl_passwd

Il faut aussi s’assurer que le fichier est lisible par le user postfix

sudo chown postfix sasl_passwd

Attention le fichier sasl_passwd.db qui sera généré doit aussi être lisible par postfix user.

Comme ceci:

[smtp.gmail.com]:587 username@gmail.com:password

Il reste à appliquer ces changements à postfix:

sudo postmap /etc/postfix/sasl_passwd

Si vous avez le message d’erreur suivant:

postfix: Postfix is running with backwards-compatible default settings
postfix: See http://www.postfix.org/COMPATIBILITY_README.html for details
postfix: To disable backwards compatibility use "postconf compatibility_level=2" and "postfix reload"

Il faut exécuter la commande suivante:

sudo postconf compatibility_level=2

Sans quoi dans mon cas le service ne se lance pas.

Pour lancer le service postfix

sudo postfix start

Pour voir le contenu de la queue des mails:

mailq

Pour tester l’envoi de mail:

date | mail -s "Test Email" YOUR_EMAIL@gmail.com

Tags: Développement , Postfix , smtp