Configurer postfix pour envoyer des mails avec gmail
I. Présentation
Dans ce tutoriel, nous allons voir comment envoyer un mail avec Postfix. Cela peut être utile notamment pour envoyer des mails de notification dans Nagios. Pour cela, rien de trop compliqué, il y a des paquets à installer et quelques fichiers de configuration à modifier.
II. Installation des paquets
On commencer par une mise à jour des paquets du système :
apt-get update
Nous allons maintenant installer les paquets suivants :
apt-get install postfix mailutils libsasl2-2 ca-certificates libsasl2-modules
Les paquets : postfix c’est postfix, mailutils permet la gestion des courriels par la console, libsasl2-2 est l’implémentation de l’interface de programmation de Cyrus SASL, ca-certificates contient des fichiers PEM de certificats CA, et pour finir libsasl2-modules contient des modules pour le paquet libsasl2-2.
Lors de l’installation, il faut choisir Site Internet et ensuite mettre mail.exemple.com (ceci n’a pas d’importance).
III. Configuration
Nous allons maintenant nous occuper de la configuration. On ouvre le fichier de configuration de Postfix :
nano /etc/postfix/main.cf
On modifie la ligne :
relayhost =
Par :
relayhost = [smtp.gmail.com]:587
Cela sert à indiquer que nous utiliserons le SMTP de Gmail. Ensuite, en dessous, on ajoute les lignes suivantes :
smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_CAfile = /etc/postfix/cacert.pem smtp_use_tls = yes
Cela sert à activer l’authentification, à indiquer où se trouve le fichier sasl_passwd que nous créerons plus tard, à interdire le mode anonyme, à indiquer où se trouve le certificat, et pour finir à utiliser le tls. On enregistre et on quitte.
On va maintenant préciser l’adresse Gmail d’où nous voulons que les mails partent. Pour cela il faut créer le fichier suivant :
nano /etc/postfix/sasl_passwd
Dans ce fichier vide, on ajoute les lignes suivantes :
[smtp.gmail.com]:587 USERNAME@gmail.com:PASSWORD
Comme vous l’aurez compris, on remplace USERNAME par notre nom d’utilisateur gmail.com et PASSWORD par notre mot de passe. Au début on laisse le smtp de Gmail. On enregistre et on quitte. On attribut maintenant les droits pour pouvoir utiliser ce fichier :
chmod 400 /etc/postfix/sasl_passwd
On exécute un postmap, cela permettra de créer une sorte de base de données.
postmap /etc/postfix/sasl_passwd
On redirige le certificat vers /etc/postfix/cacert.pem :
cat /etc/ssl/certs/Thawte_Premium_Server_CA.pem | sudo tee -a /etc/postfix/cacert.pem
On relance postfix pour que tous nos changements soient pris en compte.
/etc/init.d/postfix reload
IV. Test
Pour tester, nous pouvons exécuter la commande suivante :
echo "Test mail from postfix" | mail -s "Test Postfix" adresse@mail.com
Remplacez adresse@mail.com par l’adresse mail de la personne qui recevra le mail. Dans les messages envoyés dans votre adresse gmail.com, vous devriez voir que vous avez envoyé un mail dont l’objet est "Test Postfix", le contenu du mail est "Test mail from postfix", le destinataire est adresse@mail.com. Le destinataire doit normalement avoir reçu votre mail.
tres bien
Merci beaucoup pour la conf de postfix.
Pour s’en servir de relais pour l’envoi d’alertes mails dans un environnement exchange.
Dans relayhost faut il mettre l’ip ou le fdqn ? Faut il qu’un utilisateur nagios ou centreon soit préalablement créé ?
Encore merci pour cette astuce qui va me permettre de continuer la mise en route de ma supervision.
Bonjour,
Je dirai le fdqn, normalement ton serveur dns devrait correctement rediriger le fdqn vers ton serveur.
Je n’ai jamais utilisé autre chose que gmail.
Pour la création d’un utilisateur nagios ou centreon, tu parles sur la partie nagios/centreon, ou sur la partie postfix ?
Content que ce tuto t’aides 🙂
En fait c’est bon j’ai mis ça en route aujourd’hui, ça circule en interne. Il a fallu effectuer un réglage au niveau des hosts centos, une déclaration de la machine sur les serveurs DNS et ça c’est bien passé 😉
Merci pour le tuto.
Est ce que c’est possible de faire une deuxième partie du tuto pour expliquer la création des alias et la config coté Nagios et d’autres serveur ?
Merci d’avance.
Bonjour,
Tu parles de l’installation et configuration de Nagios du début à la fin ou juste la configuration de la notification par mail dans Nagios ?
Oui je peux faire un autre tuto, mais il sortira pas avant 2 semaines (je suis en période d’examens).
Oui je parle de la partie notification par mail.
Bon courage pour les examens 🙂
Merci beaucoup, ça marche niquel avec nagios pour ma part !
merci
Bonjours,
Je voulais savoir , si c’était normale que je ne possède pas le fichier Thawte_Premium_Server_CA.pem ?
Ceci me bloque parceque je ne sais pas ou mettre mon certif .
A moins que se soit propre a Gmail ce fichier :/
Merci
Bonjour vous tous. Ce tutoriel marche t-il pour le Linux centos 7? J’ai un soucis avec ma configuration car ça me fait des erreurs commande: echo « test »|mail -s « test » mailtestservntopng@gmail.com, j’ai ce message suivant: send-mail: cannot set X509 trust file /etc/ssl/certs/ca-certificates.crt for TLS session: Erreur de lecture de fichier.
send-mail: could not send mail (account default from /etc/msmtprc). Pour vous éclaircir j’avais installer msmtp mais je n’y est pas pu. Donc je suis allé sur le postfix. Mais rien du tt.
Bonjour. Je venais à vous pour toute votre aide. J’ai installé postfix mais je n’arrive pas à envoyer mon mail test avec la commande echo. Or le status me dit que postfix est en marche. Voir ci-dessous:
[root@localhost serverntop]# service postfix status
Redirecting to /bin/systemctl status postfix.service
postfix.service – Postfix Mail Transport Agent
Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled)
Active: active (running) since lun. 2015-11-09 08:55:07 GMT; 1h 41min ago
Process: 9662 ExecReload=/usr/sbin/postfix reload (code=exited, status=0/SUCCESS)
Main PID: 2625 (master)
CGroup: /system.slice/postfix.service
├─2625 /usr/libexec/postfix/master -w
├─9674 pickup -l -t unix -u
└─9675 qmgr -l -t unix -u
nov. 09 09:24:01 localhost.localdomain systemd[1]: Reloaded Postfix Mail Transport Agent.
nov. 09 10:02:09 localhost.localdomain systemd[1]: Started Postfix Mail Transport Agent.
nov. 09 10:02:18 localhost.localdomain systemd[1]: Reloading Postfix Mail Transport Agent.
nov. 09 10:02:18 localhost.localdomain postfix/master[2625]: reload — version 2.10.1, configuration /etc/postfix
nov. 09 10:02:18 localhost.localdomain systemd[1]: Reloaded Postfix Mail Transport Agent.
nov. 09 10:12:29 localhost.localdomain systemd[1]: Started Postfix Mail Transport Agent.
nov. 09 10:13:35 localhost.localdomain systemd[1]: Started Postfix Mail Transport Agent.
nov. 09 10:26:11 localhost.localdomain systemd[1]: Started Postfix Mail Transport Agent.
nov. 09 10:28:00 localhost.localdomain systemd[1]: Started Postfix Mail Transport Agent.
nov. 09 10:30:04 localhost.localdomain systemd[1]: Started Postfix Mail Transport Agent.
nov. 09 10:32:22 localhost.localdomain systemd[1]: Started Postfix Mail Transport Agent.
[root@localhost serverntop]# sudo service postfix start
Redirecting to /bin/systemctl start postfix.service
J’ai besoin de toute votre aide. Merci d’avance!!!
J’utilise centos 7.
Bonjour,
J’ai actuellement installer un serveur Nagios et souhaite remonter mes alertes par notification grâce a postfix, j’ai donc suivis votre tuto mais malheureusement je ne parviens pas a envoyer de mail.
Voici les messages d’erreurs que j’obtient lors de l’envoi d’un mail :
Nov 19 14:32:45 SRV-Nagios postfix/smtp[4330]: connect to smtp.gmail.com[2a00:1450:400c:c05::6d]:587: Network is unreachable
Nov 19 14:32:45 SRV-Nagios postfix/smtp[4330]: D104720C59: to=, relay=none, delay=0.01, delays=0.01/0/0/0, dsn=4.4.1, status=deferred (connect to smtp.gmail.com[2a00:1450:400c:c05::6d]:587: Network is unreachable)
Nov 19 14:32:53 SRV-Nagios postfix/master[1173]: reload — version 2.11.3, configuration /etc/postfix
Nov 19 14:32:54 SRV-Nagios postfix/pickup[4398]: 900D920C63: uid=0 from=
Nov 19 14:32:54 SRV-Nagios postfix/cleanup[4421]: 900D920C63: message-id=
Nov 19 14:32:54 SRV-Nagios postfix/qmgr[4399]: 900D920C63: from=, size=335, nrcpt=1 (queue active)
Nov 19 14:32:54 SRV-Nagios postfix/smtp[4423]: connect to smtp.gmail.com[2a00:1450:400c:c05::6d]:587: Network is unreachable
Nov 19 14:32:54 SRV-Nagios postfix/smtp[4423]: connect to smtp.gmail.com[74.125.133.109]:587: Connection refused
Nov 19 14:32:54 SRV-Nagios postfix/smtp[4423]: connect to smtp.gmail.com[74.125.133.108]:587: Connection refused
Nov 19 14:32:54 SRV-Nagios postfix/smtp[4423]: 900D920C63: to=, relay=none, delay=0.04, delays=0.02/0.01/0/0, dsn=4.4.1, status=deferred (connect to smtp.gmail.com[74.125.133.108]:587: Connection refused)
Bonjour, j’ai installé et configuré postfix normalement mais à chaque fois que je lance le test, il me renvoie « erreur de segmentation ». j’aimerais savoir s’il y a une solution pour ça.
merci pour le tuto malheureusement je bloque sur une partie
On redirige le certificat vers /etc/postfix/cacert.pem :
cat /etc/ssl/certs/Thawte_Premium_Server_CA.pem | sudo tee -a /etc/postfix/cacert.pem
pas de fichier Thawte_premium_server pour ma part =(
Pour ceux qui bloquent sur Thawte_Premium_Server_CA.pem non trouvé, ce certificat est l’ancien root et a été retiré de ca-certificates.
Vous pouvez utiliser le nouveau root (/etc/ssl/certs/thawte_Primary_Root_CA.pem) à la place.
Philippe merci pour la rectification, avec ce nouveau root ça passe!Merci aussi à toi Bastien, c’est une merveille, je m’oriente vers la notification de nagios à présent!
Super! Merci. Si on veut que le courriel qu’on envoi soit envoyé avec un nom de domaine en particulier à la place qu’il provienne de gmail par exemple?
Désolé si la question est nulle…
bonjour,j’ai suit toutes ces étapes ça marche bien mais lorsque j’ai arrivé à la derniere commande de test il ya un message qui s’affiche qu’est /usr/bin/mail:permission non accordée , quelqu’un peut m’aider svp,merci d’avance
Bonjour,
Comment jouer sur le post fix avec le relai smtp office 365?
https://www.it-connect.fr/configurer-office-365-comme-smtp-relay/
Merci
Merci, clair et efficace.
Comment change t on le nom du sender qui apparait ? (par defaut le login de l’utilisateur …)
au cas où qqun d’autre chercherait : mail -a from: »alias »
et pour ajouter des CC ou autre header, on peut ajouter d’autres -a, par exemple -a CC:mail@domaine
Bonsoir Damien, merci d’avoir pris le temps d’indiquer la réponse à ta question 🙂