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.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Bastien Champain

Etudiant en BTS Services Informatiques aux Organisations, je souhaite partager mes connaissances avec d’autres passionnés.

    bc a publié 2 articles sur IT-Connect.See all posts by bc

    20 réactions sur “Configurer postfix pour envoyer des mails avec gmail

    • 29/03/2015 à 11:43
      Permalink

      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.

      Répondre
    • 29/03/2015 à 19:27
      Permalink

      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 🙂

      Répondre
    • 30/03/2015 à 18:28
      Permalink

      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é 😉

      Répondre
    • 07/05/2015 à 15:53
      Permalink

      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.

      Répondre
    • 07/05/2015 à 18:13
      Permalink

      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).

      Répondre
    • 11/05/2015 à 14:20
      Permalink

      Oui je parle de la partie notification par mail.
      Bon courage pour les examens 🙂

      Répondre
    • 11/06/2015 à 11:45
      Permalink

      Merci beaucoup, ça marche niquel avec nagios pour ma part !

      Répondre
    • 30/06/2015 à 15:26
      Permalink

      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

      Répondre
    • 06/11/2015 à 01:08
      Permalink

      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.

      Répondre
    • 09/11/2015 à 21:09
      Permalink

      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!!!

      Répondre
    • 30/11/2015 à 16:24
      Permalink

      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)

      Répondre
    • 16/02/2016 à 20:10
      Permalink

      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.

      Répondre
    • 07/06/2016 à 22:10
      Permalink

      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 =(

      Répondre
      • 14/06/2016 à 14:18
        Permalink

        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.

        Répondre
        • 25/08/2016 à 03:11
          Permalink

          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!

          Répondre
    • 31/08/2016 à 18:45
      Permalink

      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…

      Répondre
    • 20/05/2017 à 17:28
      Permalink

      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

      Répondre

    Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *