Postfix gmail
| Fiche express | |
|---|---|
| Domaine | Relais sortant via un compte Gmail |
| Fichier credentials | /etc/postfix/sasl_passwd
|
| Compilation | postmap /etc/postfix/sasl_passwd
|
| Port relais | 587 (submission, STARTTLS) |
| Voir aussi | Postfix auth TLS |
Configurer Postfix pour utiliser un compte Gmail (ou Google Workspace) comme relais SMTP sortant — cas d'usage classique pour un petit serveur/VPS qui n'a pas de réputation IP établie et dont le courrier direct serait probablement classé en spam ou carrément bloqué (beaucoup de fournisseurs bloquent le SMTP direct sortant des plages d'hébergeurs).
⚠️ Depuis 2022, Google a désactivé l'authentification par simple mot de passe pour les comptes avec validation en deux étapes activée — il faut utiliser un mot de passe d'application (App Password) généré depuis le compte Google, jamais le mot de passe principal du compte (à vérifier selon l'état actuel des comptes concernés, la politique Google évolue).
Installation
# RHEL / CentOS
yum install postfix mailx cyrus-sasl-plain
# Debian / Ubuntu
apt install postfix mailutils libsasl2-modules libsasl2-2 sasl2-bin
Fichier d'identifiants
# /etc/postfix/sasl_passwd
[smtp.gmail.com]:587 compte@gmail.com:mot_de_passe_application
chmod 600 /etc/postfix/sasl_passwd
postmap /etc/postfix/sasl_passwd
postmap génère sasl_passwd.db à partir du fichier texte — comme pour
Aliases, toute modification du fichier texte doit être suivie d'une recompilation. Le
fichier texte en clair peut ensuite être supprimé si on ne conserve que la base compilée (les
identifiants restent alors uniquement dans le .db, toujours en clair mais protégé
par les permissions 600) :
rm /etc/postfix/sasl_passwd
Configuration main.cf
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain, login
relayhost = [smtp.gmail.com]:587
# Canal chiffré, avec vérification stricte du nom du relais
smtp_tls_security_level = secure
smtp_tls_mandatory_protocols = TLSv1.2
smtp_tls_mandatory_ciphers = high
smtp_tls_secure_cert_match = nexthop
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_tls_security_level = secure exige un certificat valide correspondant
exactement au nom du relais (nexthop) — plus strict que le may
opportuniste utilisé côté serveur entrant (voir Postfix auth TLS), logique puisqu'ici on
connaît par avance l'identité attendue du relais (Gmail).
Alias virtuels (optionnel)
Pour rediriger une adresse locale vers une autre sans passer par un compte système :
# /etc/postfix/virtual
support@mondomaine.tld autre-adresse@exemple.tld
postmap /etc/postfix/virtual
postconf -e "virtual_alias_maps = hash:/etc/postfix/virtual"
Application et test
systemctl restart postfix
systemctl status postfix
echo "Ceci est un test" | mail -s "Test Postfix" destinataire@exemple.tld
tail -f /var/log/mail.log
Si /var/log/mail.log n'existe pas, c'est que rsyslog n'est pas
installé/actif — Postfix journalise via syslog, pas directement dans un fichier.
Voir aussi
- Postfix auth TLS — détail des paramètres TLS
- Configure Postfix to use SASL authentication with TLS security — cas symétrique, Postfix comme serveur SASL
- Aliases — redirection d'adresses locales (mécanisme différent des alias virtuels ci-dessus)