Recevoir du courrier avec fetchmail et procmail |
![]() |
![]() |
|
Vous avez la possibilité de lui indiquer d'aller récupérer
toutes les 10 minutes le courrier pendant une connexion. Pour cela on va
le lancer au début de la connexion PPP. Vous allez créer
un script sous /etc/ppp
avec pour nom ip-up.local qui contiendra
les lignes suivantes:
#!/bin/bash |
/usr/bin/fetchmail |
Les droits doivent être à 755, faites un chmod 755 ip-up.local
.
Pour info, ce script est appelé à chaque début de
connexion PPP.
ATTENTION les commandes lancés dans ce fichier doivent
être indiquées avec leur chemin complet.
Chaque utilisateur doit créer un fichier .fetchmailrc qui doit se trouver dans sa home directory avec les droits 600 (chmod 600 ~/.fetchmailrc). Ce fichier contient les lignes suivantes:
set daemon 600
set logfile /var/log/fetchmail.log
poll pop.fai.fr protocol pop3
user login-fai there with password password-fai is olivier
here
poll pop.fnac.net protocol pop3
user login-fnac there with password password-fnac is olivier
here
poll pop.free.fr protocol pop3
user login-free there with password password-free is olivier
here
poll pop.ifrance.com protocol pop3
user login-ifrance there with password password-ifrance is
olivier here
poll pop.fnac.net protocol pop3
user login2-fnac there with password password2-fnac is veronique
here
poll pop.ifrance.com protocol pop3
user login2-ifrance there with password password2-ifrance
is veronique here
poll pop.libertysurf.fr protocol pop3
user login-liberty there with password password-liberty is
olivier here
Le paramètre 600 fixe la période de relevé de la boîte aux lettres, l'unité étant la seconde. Le fichier fetchmail sous /var/log est le fichier de log (j'ai mis les droits du répertoire /var/log à 777 à tout hasard). pop.fai.fr est le nom du serveur pop de votre provider. login-fai est le nom de votre login chez votre provider, passwrod-fai est le mot de passe chez le provider, olivier est le login de l'utilisateur local correspondant. Vous rajoutez autant de ligne poll et user que vous avez de compte pop à d'autre et à gauche, vous noterez qu'on peut en profiter pour relever les emails d'autres utilisateurs de votre réseau (dans l'exemple utilisateur du réseau privé veronique).
ATTENTION: les mots de passe sont marqués en clair (d'où les droits du fichier...).
Pour récupérer le courrier il suffira de lancer une connexion. Si vous voulez pas utiliser les script ip-up.local, chaque utilisateur peut taper fetchmail tout simplement d'un shell pour récupérer le courrier.
Fetchmail est une commande très riche, vous avez qu'à faire un man dessus pour s'en rendre compte, à venir les options intéressantes notamment celle qui consiste à détruire directement sur le serveur certain mail (si quelqu'un vous envoie un mail avec fichier attaché de 10Mo par exemple...).
Procmail permet de trier le courrier reçu par fetchmail.
pour cela tout utilisateur avec son .fetchmailrc doit avoir un .procmailrc
dans
sa home directory. Si je prends mon exemple, je disposais d'un compte pop
unique chez mon provider infini, mon adresse email était olivier.hoarau@infini.fr,
mon compte local est olivier, celle de ma tendre et chère
veronique.hoarau@infini.fr
et compte local veronique. Si je veux expédier à Véronique
tous les courriers dont les champs Destinataire (To) ou Copie (Cc) contiennent
le champ veronique ou Véronique ou encore Veronique, voici la tête
de mon .procmailrc
#olivier |
:0 c |
*^(To|Cc|Bcc):*(veronique|Veronique) |
!veronique |
Celui de ma femme aura cette tête là:
#veronique |
:0 c |
*^(To|Cc|Bcc):*(olivier|Olivier|funboard|Funboard) |
!olivier |
Je suis abonné à une liste funboard, c'est le nom de la liste qui apparaît dans la liste du destinataire ou du destinataire en copie, et non pas mon nom, d'où le critère de tri.
Le ! réexpédie localement le courrier vers le bon
destinataire. Vous pouvez très bien aussi faire un fichier unique
pour chaque utilisateur qui aura cette tête là:
# redirection vers veronique |
:0 c |
*^(To|Cc|Bcc):*(veronique|Veronique) |
!veronique
|
:0 c |
*^(To|Cc|Bcc):*(olivier|Olivier|funboard|Funboard) |
!olivier
# les autres mails au destinataire non identifié vont vers
olivier, vous pouvez très bien mettre /dev/null (poubelle) à
la place de !olivier
A noter que le petit c permet de pouvoir gérer les copies, en son absence, si un mail arrive avec pour destinataire (To) Véronique et Olivier en copie (Cc), ce n'est que le premier dans la liste qui recevra le mail (en l'occurence Véronique dans mon exemple de fichier), c permet qu'olivier reçoive aussi le courrier. |
Le courrier échoue sous /var/spool/mail dans un fichier qui a pour nom le login de l'utilisateur, on verra plus loin comment lire ce courrier avec Kmail ou le messenger de Netscape.
De même que fetchmail, procmail est une commande très riche, les filtres peuvent être assez fouillés de manière, par exemple, à éviter les spams.
![]() |