pigeon_voyageur_2

De tous temps, envoyer des missives a toujours été un défi particulier. Jadis, c'était possible via de fidèles serviteurs à plumes mais avec un taux de distribution parfois incertain.
Probablement du fait des nombreuses embuches que pouvaient rencontrer nos volatiles messagers en cours de route..


Un peu plus actuel, l'envoi de mails est considéré comme plus sûr. Mais la configuration d'un serveur pour cet exercice n'est pas, il faut le reconnaitre, d'une très grande facilité.

Pour palier à ce problème, ssmtp utilise non pas un service présent sur votre serveur (comme Postfix ou Sendmail), mais un relais extérieur, via une authentification "utilisateur + Mot de passe". Ce que l'on appelle génralement un relais SMTP.

Cet article ne traite pas d'un serveur mail au sens "comptes mails utilisateurs" mais permet simplement l'envoi de mails depuis un terminal et donc à une machine CentOS de vous envoyer des courriels d'alerte, de logs, de retours de scripts, etc.. en utilisant un service externe.

Pour une meilleure compréhension, et parce qu'ils sont assez répandus, notre exemple proposera l'utilisation d'un compte "Gmail" et en alternative, d'un compte "Orange". Mais cela fonctionne aussi avec d'autres. Ceci dit, créer un compte Gmail pour la circonstance n'est pas la plus mauvaise idée..


Téléchargement & Installation de ssmtp


Les fichiers d'installation sont dispos sur mgroup.fr.

Attention : Récupérez et installez celui qui correspond à votre CentOS (5.x ou 6.x) et à sa version (32 ou 64 Bits).

Pour CentOS 5 version 32 Bits
# cd /tmp
# wget http://www.mgroup.fr/public/downloads/rpm/ssmtp-2.61-19.el5.i386.rpm
# rpm -ivh ssmtp-2.61-19.el5.i386.rpm


Pour CentOS 5 version 64 Bits
# cd /tmp
# wget http://www.mgroup.fr/public/downloads/rpm/ssmtp-2.61-19.el5.x86_64.rpm
# rpm -ivh ssmtp-2.61-19.el5.x86_64.rpm



Pour CentOS 6 version 32 Bits
# cd /tmp
# wget http://www.mgroup.fr/public/downloads/rpm/ssmtp-2.61-19.el6.i686.rpm
# rpm -ivh ssmtp-2.61-19.el6.i686.rpm


Pour CentOS 6 version 64 Bits
# cd /tmp
# wget http://www.mgroup.fr/public/downloads/rpm/ssmtp-2.61-19.el6.x86_64.rpm
# rpm -ivh ssmtp-2.61-19.el6.x86_64.rpm




Remplacer Postfix ou Sendmail par ssmtp


Sous CentOS 5
  • CentOS 5.x utilise Sendmail par défaut. Nous supposons qu'il n'est pas configuré et/ou utilisé (puisque vous suivez cet article), donc on le désinstalle à la hussarde :
# rpm -e sendmail


Sous CentOS 6
  • Depuis la version 6 de CentOS, c'est Postfix qui est installé par défaut en lieu et place de SendMail. On procède donc :
# service postfix stop
# yum remove postfix




Fichier de configuration pour SSMTP (toutes versions de CentOS)


  • Comme à l'accoutumée, on déplace le fichier de configuration original de manière à conserver une base d'exemple :
# mv /etc/ssmtp/ssmtp.conf  /etc/ssmtp/ssmtp.conf.old


  • Puis on en créé un nouveau :
# vi /etc/ssmtp/ssmtp.conf


  • Le fichier ci-dessous contient toutes les annotations nécessaires :
## exemple ssmtp by mgroup ##

## Serveur SMTP et port vers lequel on envoie les mails
## Pour Gmail : mailhub=smtp.gmail.com:465
## Pour Orange : mailhub=smtp-msa.orange.fr:587
MailHub=smtp.gmail.com:465

## Optionnel
## le domaine depuis lequel est envoye le mail
## laissez vide si vous n en avez pas
RewriteDomain=

## nom du serveur
Hostname=nom.de.votre.serveur

## forcer re ecriture expediteur (le champ expediteur du mail)
#FromLineOverride=yes

## destinataire auquel le serveur renvoie
## les messages
## peut etre different du compte gmail
## ou orange
Root=duchnoc@gmail.fr

## authentification sur le relais smtp ##
## securite ssl
## yes pour gmail
## commenter la ligne avec diese pour orange
## mais moins secure
UseTLS=yes

## votre compte gmail ou orange
## exemple :  duchnoc@gmail.fr
AuthUser=duchnoc@gmail.fr

## le mot de passe associe au compte  
AuthPass=dugenou



  • Rappel des points qu'il faut impérativement adapter à votre situation :
  1. MailHub= L'adresse du serveur SMTP que vous utiliserez et son port (laissez l'exemple si vous choisissez Gmail)
  2. Hostname= Le nom de votre Serveur (court ou long)
  3. Root= L'adresse à laquelle les mails doivent arriver (Pas forcément le compte utilisé pour l'expédition SMTP)
  4. UseTLS=yes L'option de sécu ssl. Dépend du type de serveur SMTP. Laisser "yes" pour Gmail
  5. AuthUser= Le login valide du compte mail d'expédition
  6. AuthPass= Le mot de passe associé à ce compte mail d'expédition




Test d'envoi du premier mail


  • Pour tester le bon fonctionnement de votre configuration ssmtp, une simple commande facile à retenir, à savoir "mail" :
# mail dupont@duchnoc.com


  • Le système commence par vous demander le sujet du mail (renseignez et tapez sur "enter") puis son contenu :
Subject: test ssmtp
contenu du message de test


  • Appuyez sur les touches "ctrl" et "d" simultanément pour terminer et envoyer votre mail test.. Le système confirme avec le message "EOT" (pour End Of Transmission ou fin de transmission dans la langue de Molière).
  • Si vous recevez celui-ci, les autres ne devraient pas poser problème et vous aurez la joie de découvrir que certains serveurs peuvent être très bavards..



Tips :

  • Pour voir si la file d'attente contient des mails, utilisez simplement la commande "mailq"
  • Sous CentOS, les erreurs et confirmations d'envoi (logs) peuvent être retrouvées dans le fichier "/var/log/maillog"




Infos particulières :

  • Les CentOS Linux utilisées pour les tests et la rédaction de ce petit tuto disposaient d'Iptables et parefeu activé (dans sa configuration par défaut).
  • Selinux désactivé (voir la page dédiée si besoin)




Vous pouvez commenter ou participer à l'amélioration de cet article via le topic dédié du forum.