Recevoir du courrier avec fetchmail et procmail

Lancer une connexion à distance Enovyer du courrier
Configuration Internet

Présentation de la configuration

Configuration de fetchmail

Configuration de procmail

Présentation de la configuration

Chez mon ancien provider, je disposais d'un compte chez mon provider avec login et mot de passe, sur ce compte je disposais de quatre adresses email, une pour chaque membre de la famille ( y compris pour ma fillote de 4 ans !!) (compte pop unique avec 4 emails rattachés). Le problème sous Windaube, même si on a créé différents utilisateurs, est que cet abruti d'Outlook Express quelque soit le destinataire fourre tout le courrier en vrac dans l'Inbox de celui qui a vidé la boîte aux lettres, bonjour le bazar et éventuellement la confidentialité. La personne, destinataire d'un mail, peut ne pas le voir, pour la simple raison qu'il se trouve dans la boîte aux lettres d'un autre utilisateur.
Linux permet de gommer tous ces petits inconvénients.
Maintenant c'est plus simple, avec l'arrivée des FAI gratuits chaque membre de la famille a son propre compte pop, ce qui permet une meilleure séparation des mails entrants.

Configuration de fetchmail

Fetchmail sert à récupérer le courrier chez le provider.

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

Configuration de procmail

Pour l'instant dans le cas où vous avec un compte pop unique avec plusieurs emails rattachés, fetchmail va tout mettre dans la boîte aux lettres de celui qui va lancer la commande fetchmail, pour effectuer un tri à la réception, vous devez penser à procmail.

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
 
# redirection vers olivier
: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
:0
*.*
!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.

Retour haut de la page