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 ?

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

      repondre 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

        repondre message

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

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

    Merci......

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

      repondre 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

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

      repondre message