Association Bordelaise des Utilisateurs de Logiciels libres

Accueil ›› Utilisation de logiciels libres ›› Réseau ›› Configurer son Serveur de courrier

Configurer son Serveur de courrier

Posté le mercredi 22 octobre 2003 par john perr

Généralités

La configuration d’un serveur de courrier sur votre machine n’est pas une chose obligatoire mais vous apportera un confort inagalé. C’est en effet le seul moyen d’accèder à toute la puissance des outils unix dédiés au courrier, que ce soit le filtre procmail ou le client mutt unanimement apprécié. Vous aurez aussi la possibilité d’utiliser d’autres outils comme emacs ou toutes les procédures spécialisées de langages comme perl. Plus simplement, vous aurez aussi la possibilité d’affecter plusieurs boites au lettres sur Internet à leurs utilisateurs respectifs sur votre machine ou votre réseau local.
Cette page s’adresse à tous ceux qui accèdent à Internet par une liaison temporaire ou permanente et qui souhaitent profiter d’un confort accru dans l’utilisation du courrier.

Comment ça marche ?

Parmi les outils cités ci-dessous, chacun joue un rôle particulier dans le processus de distribution du courrier :

  • Les MTA (Mail Transfert Agent ou Agents de Transfert du Courrier) distribuent le courrier selon un protocole internet bien établi. Dans le cas qui nous interesse, le protocole utilisé est le SMTP (Simple Mail Transfert Protocol) et il utilise le port TCP 25 pour discuter avec les autres machines sur le net ou dans un réseau. Les MTA les plus connus sont sendmail, postfix, exim ou qmail. Il y en a d’autres, et nous nous interesserons ici aux deux premiers car c’est grace à eux que notre courrier partira sur internet ou sera distribué localement aux utilisateurs de la machine.
  • Les MUA (Mail User Agent ou Agent d’Utilisateur de Courrier) permettent l’utilisation finale du courrier c’est à dire l’envoi ou la lecture des messages. Nous ne parlerons ici que de netscape mais les autres ne sont pas plus difficiles à configurer.
  • Les autres outils comme fetchmail ont un rôle particulier dans notre configuration à cause de la nature de la liaison qui nous uni avec notre Fournisseur d’Accès Internet (FAI en abrègé ou ISP en anglais). En effet, les FAI ont une majorité de clients qui n’ont pas de serveur de courrier sur leur machine et ne sont pas connectés la plupart du temps. Pour ces raisons et d’autres liées à la sécurité ils ne mettent pas le courrier à disposition sur le port TCP 25 mais le laissent dans votre boite aux lettre sur leur serveur en attendant que vous alliez le chercher. Le protocole utilisé pour cela est le plus souvent le POP3 mais on peut aussi trouver IMAP. fetchmail permet justement de faire cela : aller chercher le courrier qui attend sagement dans une boite quelque part sur Internet, pas forcement celle de votre FAI d’ailleur. fetchmail transmet ensuite ce courrier au MTA que vous aurez installé (sendmail ou postfix) afin qu’il aille rejoindre son destinataire.

Avant de commencer à relever vos manches, il est conseillé aux débutants d’opter pour postfix dont les fichiers de configuration sont nettement plus clairs que l’unique sendmail.cf de sendmail.

Vous trouverez donc ci-dessous une compilation des étapes de configuration de sendmail, postfix, fetchmail et netscape. Cette version corrige de petits détails oubliés dans les messages précédents diffusés sur la liste tech@abul.org.

Configurer sendmail+fetchmail

La version courte est disponible sur le site de LinuxFocus, article 130 de Mai 2000.

Pour une version un peu plus explicative voir l’article de Éric Jacoboni sur Linux-France.
Toutefois, cette version longue n’explique pas la configuration de fetchmail ; voir l’article court de LinuxFocus pour la configuration de fetchmail et l’automatisation.

Configurer postfix

Voila la configuration postfix (dans /etc/postfix/) à modifier pour remplacer éventuellement sendmail avec connection chez le FAI. La config fetchmail et l’automatisation ne sont pas touchées par le passage sendmail->postfix grace à la compatibilité sendmail de postfix si vous aviez déjà sendmail d’installé.
On suppose que :

  • Le nom de domaine du fai est fai.net
  • L’envoi de courrier se fait par smtp.fai.net (port 25)
  • La réception du courrier se fait par pop.fai.net (port 110)
  • L’adresse email chez le fai est toto@fai.net
  • Le login sur la machine en local est dede
  • Le nom de domaine (hostname) de la machine locale est localhost.localdomain
  • simon est autre compte sur la machine locale avec une adresse email raptor@yodleou.net (par exemple :-)

Procédure

  1. sauvegarder tous les fichiers de configuration de sendmail quelque part. (Oubliez cette partie si sendmail n’est pas déjà installé, c’est juste une précaution) :
    • /etc/aliases
    • /etc/aliases.db
    • /etc/sendmail.cf
    • /etc/genericstable
    • /etc/genericstable.db
  2. Désinstaller sendmail avec la commande rpm -e —nodeps sendmail...
  3. Installer postfix
  4. ajouter les lignes suivantes à la fin du fichier virtual :
    	root			root@localhost.localdomain
    postmaster postmaster@localhost.localdomain
    dede dede@localhost.localdomain
    simon simon@localhost.localdomain
    autre autre@localhost.localdomain
    toto dede@localhost.localdomain
    raptor@yodleou.net simon@localhost.localdomain
  5. créer le fichier sender_canonical qui contient :
        dede    toto@fai.net
    simon raptor@yodleou.net
  6. ajouter les lignes suivantes au fichier main.cf (à l’endroit ou existe ces lignes avec un commentaire #, ou bien à la fin, c’est pareil)
    	myorigin = fai.net
    virtual_maps = hash :/etc/postfix/virtual
    relayhost = smtp.fai.net
    defer_transports = smtp
    disable_dns_lookups = yes
    alias_maps = hash :/etc/postfix/aliases
    sender_canonical_maps = hash :/etc/postfix/sender_canonical

    Toutes les lignes #alias_database doivent être commentées ou inexistantes :

    	#alias_database = dbm :/etc/aliases
    #alias_database = dbm :/etc/mail/aliases
    #alias_database = hash :/etc/aliases
    #alias_database = hash :/etc/aliases, hash :/opt/majordomo/aliases
  7. générer la base des adresses virtuelles avec les commandes :
    	cd /etc/postfix
    postmap /etc/postfix/virtual
  8. Modifier les alias dans /etc/postfix/aliases (ou bien recopier le /etc/aliases de sendmail à cet endroit) et générer la bd :
    	cd /etc/postfix
    postmap /etc/postfix/aliases
    (on peut aussi utliser la commande "newaliases")
  9. redémarrer postfix :
    postfix reload

Configurer fetchmail

Configuration de fetchmail pour récupérer le courrier sur des comptes extérieurs (chez le FAI, ailleurs, en pop ou en imap. Extrait de l’ article 130 de Mai 2000 de LinuxFocus :

Avant de faire un essai sur Internet il faut aussi configurer fetchmail pour récupérer le courrier :
créez un fichier .fetchmailrc dans /home/dede :

poll pop.isp.net protocol POP3
user toto is dede
password XXXXXXX

ou toto et XXXXX sont les login et password de votre compte courrier pop.isp.net. Si vous disposez de plusieurs boîtes aux lettres vous pouvez les relever en dupliquant les lignes ci-dessus pour chaque boîtes aux lettres.
Le fichier .fetchmailrc doit avoir les permissions suivantes, sinon fetchmail refusera de s’exécuter :

-rw-------   1 dede   dede   189 oct  6 21:45 /home/dede/.fetchmailrc

Pour faire un test sur Internet

  • écrire un message (sans être connecté) à un réflecteur de courrier comme echo@cnam.fr
  • envoyez le.

Il doit apparaître dans la liste d’attente quand on tape la commande : mailq

Ensuite connectez vous à votre fai (fai.net) et envoyez le message :

/usr/bin/sendmail -q

Attendez un peu et faites fetchmail pour récupérer votre courrier, vous devriez avoir un message renvoyé par le réflecteur. Vous pouvez vous déconnecter dès que tous les messages sont arrivés.
Il ne vous reste plus qu’à automatiser ces commandes lors de la connection en les ajoutant au fichier /etc/ppp/ip-up.local soit en les lançant en mode daemon si vous avez une connection permanente.
Ces deux façons de procéder sont expliquées dans l’ article 130 de Mai 2000 de LinuxFocus :

Configurer netscape

Configuration de netscape pour lire le courrier en local (extrait de l’ article 130 de Mai 2000 de LinuxFocus :

Pour configurer Netscape pour lire le courrier local (servi par sendmail ou postfix) :

  • Aller dans le menu Edit/Preferences/Mail & Groups/Mail Server
  • Taper localhost.localdomain comme Outgoing mail (SMTP) server
  • Choisir movemail/built-in comme Mail server type
  • Changer la permission de /var/spool/mail avec chmod 777 /var/spool/mail.

*ATTENTION : ce dernier changement peut présenter des trous de sécurité si vous n’êtes pas le seul connecté à votre machine. Utilisez un autre client courrier que netscape si vous voulez être sur d’être le seul à lire votre courrier.

Répondre à cet article

7 commentaire(s)
  • Posté le 2 mars 2004 à 15:29, par lamontbrouss (lien)

    et quand on est sous debian, rpm c’est bien beau mais avec des .deb ...... je viens seulement de faire tourner correctement debian (ça fait plus d’un an que je suis dessus...).
    Comment faire ?

    Répondre à ce message

    • Posté le 2 mars 2004 à 22:37, par John Perr (lien)

      Ca n’est pas très différent. Il faut utiliser apt-get pour installer les paquetages .deb au lieu des rpm. Une fois postfix et fetchmail installés, la configuration est la meme, les fichiers de configuration de ces programmes ne dépendent pas de la distribution.

      Répondre à ce message

      • Posté le 28 août 2006 à 19:30, par ciback (lien)

        je suis un debutant, je souhaite que vous me donner les details de la configuration d’un serveur de courrier avec Redhat Enterprise linux version 4 pour un reseau local

        Répondre à ce message

  • Posté le 28 mai 2004 à 12:08 (lien)

    Hello, je voudrais configure majordomo avec postfix comment faire ???????????

    Merci......

    Répondre à ce message

    • Posté le 28 mai 2004 à 22:15, par John Perr (lien)

      Majordomo est un moteur de liste de diffusion. Son fonctionnement est totalement indépendant de celui d’un serveur de courrier comme postfix, exim qmail ou sendmail.
      Si tu as un serveur de conrrier qui fonctionne, quelqu’il soit, la configuration de majordomo sera forcement la même.
      Comme je ne suis pas un spécialiste ni même un connaisseur de majordomo, je t’invite à poser ce genre de question sur les listes de diffusion adaptées à ce genre de question, la liste "debutant" ou "tech" de l’Abul par exemple.

      Répondre à ce message

  • Posté le 17 mai 2007 à 14:38, par agencep (lien)

    Bonjour tous le monde.

    je suis tout nouveau dans le monde de linux.

    j’ai un serveur privée acquis de 1and1. et lorsque je procède à un envoie de mailing il reste trop longtemps a traité la fil d’attente.

    ma question : y’a t’il un moyen de changer la priorité du Qmail / sendmail ou bien de faire accéléré le traitement des mails.
    actuellement il traite presque 1 mail / heure.

    merci

    Répondre à ce message

    • Posté le 17 mai 2007 à 15:21, par john perr (lien)

      A priori il y a 2 possibilités :

      Soit le serveur est configuré pour introduire un délai d’une heure dans le traitement des mails. C’est une solution souvent utilisée par les admin système pour avoir le temps de réagir en cas d’alerte de sécurité. Il doit alors y avoir une option quelque part dans l fichier de config qui précise ce délai.

      Soit il y a sur le serveur des outils comme spamassassin qui mal configurés peuvent pendre beaucoup de temps pour traiter les messages. Toutefois, une heure c’est vraiment beaucoup et c’est improbable à moins que le serveur ne tourne sur un 386...

      Répondre à ce message