Configuration de sendmail

Présentation

Le programme sendmail est un MTA (Mail Transport Agent). Il a la charge de recevoir le courrier en provenance de l'extérieur pour le distribuer aux utilisateurs locaux ou le renvoyer vers le destinataire. Il a également la charge de récupérer les mails à envoyer et de se charger de leur acheminement.

Sa configuration passe le fichier « /etc/mail/sendmail.cf ». Ce dernier étant particulièrement difficile à manipuler, les administrateurs passent généralement par une version simplifiée rédigée à l'aide de macros M4 (/etc/mail/sendmail.mc). M4 est un langage de macros comparable (mais bien plus puissant) au pré-processeur du langage C.

Envoyer et recevoir des mails en local

♦  Commencez par vérifier la présence de Sendmail :

yum install sendmail sendmail-cf
/etc/init.d/sendmail restart

♦  A ce stade, vous devez être capable d'envoyer et de recevoir des mails entre utilisateurs locaux de la machine. Pour tester cette fonction, le plus simple est d'utiliser la commande mail :

mail -v -s "mon sujet" utilisateur

Vous pouvez lister les mails en partance avec la commande mailq (ils sont dans /var/spool/mqueue).

Les mails sur le réseau ISL

Vous allez maintenant échanger des mails entre deux machines du réseau ISL. Utilisez le nom des machines tels que définis dans le TP sur les IPtables. Pour que sendmail accepte les mails en provenance d'une autre machine, vous devez changer la configuration par défaut :

  1. ouvrez /etc/mail/sendmail.mc,
  2. repérez la ligne à modifier et modifiez là ! (clause DAEMON_OPTIONS),
  3. recalculez le fichier sendmail.cf avec
    make -C /etc/mail
    
  4. redemarrez le service sendmail

Vous devez maintenant être capable d'échanger des mails entre machines du réseau ISL. Vous pouvez suivre le traffic dans les fichiers de trace (/var/log/maillog).

Ajouter des aliases

Le fichier /etc/aliases permet de mettre en place des aliases (surnom) dans la gestion des courriers électroniques. Ajoutez des alias à ce fichier (il est très souvent dejà rempli) et informez sendmail avec la commande newaliases. Vous pouvez maintenant les utiliser dans des adresses de destination.

Envoyer des mails vers l'exterieur

A ce stade, vous ne pouvez pas envoyer des mails vers l'extérieur à cause du firewall qui bloque toute tentative de connexion vers l'extérieur du protocole SMTP. Cette configuration est courante. Il y a généralement, sur un réseau local, une seul machine qui a la charge d'envoyer et de recevoir du courrier. Au DIL, c'est la machine sol.dil.univ-mrs.fr. Les mails sortants doivent donc passer par son intermédiaire.

  1. ouvrez /etc/mail/sendmail.mc et le fichier d'aide /usr/share/sendmail-cf/README,
  2. cherchez l'explication de la variable MAIL_HUB,
  3. configurez cette variable et redémarrez sendmail.

Vous pouvez maintenant envoyer des mails vers les adresses ...@dil.univ-mrs.fr

Retour vers ISL

Malheureusement, notre dernière modification vous empêche maintenant d'envoyer des mails sur le réseau ISL. Pour avoir les deux possibilités, vous devez ajouter des règles spécifiques de routage des mails. Cherchez dans le fichier README la section « USING MAILERTABLES » et utilisez la table « /etc/mail/mailertable ».