par John Perr L´auteur: Utilisateur Linux depuis 1994; il est l'éditeur français de la revue LinuxFocus. Sommaire: |
Résumé:
Voici comment configurer sendmail et
fetchmail sur une machine locale. Cela permet d'utiliser tous les outils de
gestion du courrier d'Unix et surtout de recevoir et d'envoyer son courrier
lors de chaque connection avec PPP.
Pour gérer le courrier sur votre machine, vous devez configurer un agent de transfert du
courrier (ou MTA, MAil Transfer Agent en anglais). Le plus courant est sendmail, mais il en existe
d'autres comme qmail plus rapide et surtout plus simple à configurer, ou exim fourni en standard
avec la distribution Debian. Nous resterons ici fidèles à sendmail en utilisant un kit de
configuration de l'université de Berkeley et conçu par
Eric Allman.
Pour récupérer votre courrier chez votre Fournisseur d'Accès Internet (FAI en abrégé), il sera aussi nécessaire de
configurer fetchmail afin de nourrir sendmail avec le contenu de vos boîtes aux lettres.
Pour configurer sendmail il faut installer les paquetages suivants (au format rpm):
A priori seuls les 2 premiers sont indispensables.
Voici les étapes de la configuration de sendmail:
/usr/lib/sendmail-cf/cf/config.mc
qui contient:
# Début du config.mc include(`../m4/cf.m4')dnl OSTYPE(`linux')dnl define(`SMTP_MAILER_FLAGS', `e9')dnl FEATURE(redirect)dnl FEATURE(nocanonify)dnl FEATURE(always_add_domain)dnl FEATURE(local_procmail)dnl GENERICS_DOMAIN(localhost.localdomain localhost localhost) FEATURE(genericstable) FEATURE(masquerade_envelope)dnl define(`confCF_VERSION',`cf à dede - 22/05/98')dnl define(`confCON_EXPENSIVE',`True')dnl define(`confME_TOO',`True')dnl define(`confCOPY_ERRORS_TO',`Postmaster')dnl define(`confDEF_CHAR_SET',`ISO-8859-1')dnl define(`confMIME_FORMAT_ERRORS',`True')dnl define(`SMART_HOST',`smtp8:[smtp.isp.net]')dnl define(`confTO_QUEUEWARN',`24h') MAILER(local) MAILER(smtp) # Fin du config.mc |
dede: toto@isp.net root: toto@isp.net news: toto@isp.net |
MAILER-DAEMON: postmaster postmaster: root |
passwd: files shadow: files group: files hosts: files dns services: files networks: files protocols: files rpc: files ethers: files netmasks: files bootparams: files netgroup: publickey: automount: files aliases: files |
m4 config.mc > /etc/sendmail.cf
-rw------- 1 root root 26468 mai 12 22:52 /etc/sendmail.cf
/usr/bin/sendmail -bi -oA/etc/genericstable
newaliases
127.0.0.1 localhost.localdomain localhost localhost
kill `head -1 /var/run/sendmail.pid`
/usr/bin/sendmail -bd -os
Voila c'est fini pour sendmail, reste à vérifier que cela fonctionne:
Créer un fichier test.mail avec les lignes:
Subject: test local
(laisser une ligne vide)
|
/usr/bin/sendmail -v dede < test.mail
les lignes suivantes doivent s'afficher:
dede... Connecting to local dede... Sent
Lancer mail ou tout autre programme de lecture de courrier (pas encore Netscape!!) et vérifier que le message a été reçu.
Pour configurer Netscape pour lire le courrier local (servi par sendmail):
Edit/Preferences/Mail & Groups/Mail Server
localhost.localdomain
comme Outgoing mail (SMTP) server
movemail/built-in
comme Mail server type
/var/spool/mail
avec chmod 777 /var/spool/mail
.
A partir de maintenant, c'est votre machine qui dessert le courrier en direct depuis netscape même si vous n'êtes pas connecté à Internet. Bien sur, vous pouvez utiliser tous les autres clients courrier comme XFmail, emacs, mutt, pine etc...
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:
mailq
Ensuite connectez vous à votre fai (isp.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.
Une fois que cela fonctionne, il reste à automatiser tout cela pour que cela marche
tout seul à la connection.
Avec PPP, les fichiers /etc/ppp/ip-up et ip-down sont exécutés à chaque
connection et déconnection. Vérifiez que vous avez une ligne du genre de celle ci
dans ip-up et ip-down, sinon la créer:
[ -x /etc/ppp/ip-down.local ] && /etc/ppp/ip-down.local $*
Les fichiers /etc/ppp/ip-up et ip-down lancent alors des fichiers ip-up.local et ip-down.local que l'on peut créer comme suit:
#!/bin/bash # /etc/ppp/ip-up.local #Enregistrer les paramètres de connection echo `date` $4 $5 ppp-on >> /etc/ppp/history tail -n 1 connect-errors >> /etc/ppp/history # Envoyer le courrier en attente echo Sending mail... > /dev/console /usr/sbin/sendmail -q echo Mail sent. > /dev/console # Récupérer le courrier sur le serveur pop echo Getting mail... > /dev/console fetchmail > /dev/console 2>&1 echo Got mail. > /dev/console #Fini exit 0 # fin de /etc/ppp/ip-up.local |
En fait, les deux lignes importantes sont les commandes sendmail -q et fetchmail, le reste est cosmétique et permet:
#!/bin/bash # /etc/ppp/ip-down.local #Enregistrer les paramètres de connection echo `date` ppp-off >> /etc/ppp/history #fini exit 0 # fin de /etc/ppp/ip-down.local |
Ces fichiers étant exécutés par root
, il faudra recopier votre fichier
.fetchmailrc
dans le répertoire de root
.
Si vous disposez d'un accès permanent à Internet, sendmail se charge tout seul d'expédier
régulièrement le courrier s'il est lancé en mode démon avec la commande:
sendmail -bd -q10m
Pour envoyer votre courrier toutes les 10 minutes par exemple.
fetchmail peut aussi être lancé en mode démon avec la commande:
fetchmail -d 600
Pour récupérer votre courrier toutes les 10 minutes (600 secondes) par exemple.
Le plus pratique consiste généralement à intégrer ce type de commande dans vos
fichiers de démarrage /etc/rc
ou /etc/rc.d/
(peut varier selon votre configuration).
Avec cette configuration, dès que vous vous connectez, le courrier en attente
(mailq
) est
expédié et celui qui attend chez votre FAI arrive. Vous pouvez utiliser xbiff ou
xmailbox ou autre pour vous signaler que vous avez du courrier. Vous pouvez aussi
affiner le tri et le filtrage de votre courrier avec procmail; cela est expliqué dans
l'
article de Novembre 1997 de
Angel Lopez.
|
Site Web maintenu par l´équipe d´édition LinuxFocus
© John Perr, FDL LinuxFocus.org Cliquez ici pour signaler une erreur ou envoyer un commentaire à Linuxfocus |
2001-03-18, generated by lfparser version 2.8