[ Présentation de la configuration | Configuration de fetchmail   ( Méthode automatique   ,  Méthode manuelle ) |  Limiter la taille des mails récupérés et supprimer des mails directement sur le serveur POP du FAI    | Configuration de procmailInstallation d'un serveur pop ]

Dernière modification 25 juillet 2006

Recevoir du courrier et configurer un serveur pop

Configuration Internet


( ce document est disponible au format pdf dans la rubrique téléchargement)

Présentation de la configuration

Cette page a pour objet de vous présenter comment récupérer les mails des utilisateurs de votre réseau et les mettre à leur disposition.  Le rôle des différents outils présentés dans cette page est le suivant:
- fetchmail permet de récupérer les mails des utilisateurs de votre réseau sur plusieurs serveurs POP
- procmail permet de faire le tri des mails et de dispatcher suivant le destinataire
- le serveur POP pemet de rendre accessible aux lecteurs de mails de votre réseau les mails qui sont arrivés, que vos clients soient sous windows ou sous unix.
Complémentaire à cette page, consultez également les pages:
- filtrage anti spam et anti virus
- sendmail pour envoyer le courrier

 

[Retour haut de la page ]

Configuration de fetchmail

Méthode automatique

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 à l'établissement de la connexion. 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 (que ce soit du RTC ou de l'ADSL)..

NOTE Eventuellement rajouter l'appel à fetchmail à la fin de ip-up (voir page config ppp à la main ).

ATTENTION les commandes lancés dans ce fichier doivent être indiquées avec leur chemin complet.

Maintenant root 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, pop.fai.fr est le nom du serveur pop de votre provider. login-fai est le nom de votre login chez votre provider, password-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 à droite 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...).

[Retour haut de la page ]

Méthode manuelle

Vous avez aussi la possibilité en tant que simple utilisateur de créer votre propre fichier .fetchmailrc (syntaxe idem plus haut si ce n'est le chemin du fichier de log où vous devez avoir les droits d'écriture) que vous placerez dans votre homedirectory  et de lancer fetchmail d'un shell.  Vous pouvez très bien récupérer également les mails des autres utilisateurs de votre réseau.

[Retour haut de la page ]

Limiter la taille des mails récupérés et supprimer les mails sur le serveur

NOTE Si vous voulez limiter la taille des fichiers récupérés à 100Ko par exemple, vous avez l'option:

fetchmail -l 100000

Ca va laisser tous les fichiers dont la taille est supérieure à 100Ko sur le serveur pop du fai, pour visualiser l'header et les supprimer.

telnet pop.fai.fr 110
Trying 195.154.205.225...
Connected to pop.fai.fr
Escape character is '^]'.
+OK POP3 mailhub.fai.fr v7.64 server ready
user login-pop
+OK User name accepted, password please
pass password-pop
+OK Mailbox open, 4 messages
list
+OK Mailbox scan listing follows
1 2199201
2 132664
3 388987
4 310757

Vous pouvez voir que vous avez 4 messages ainsi que leur taille. Pour visualiser l'header du message 1:

top 1   0

Vous pouvez visualiser le corps du message mais je ne le vous conseille pas, si c'est une image de 1Mo, ça va bloquer votre shell un certain temps. Je vous donne quand même la commande pour le message 1:

retr 1

Pour supprimer le message 1:

dele 1

Et enfin pour quitter:

quit

[Retour haut de la page ]

Configuration de procmail

Dans le cas où vous avez 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 également dans sa home directory. Si je prends mon exemple, je disposais d'un compte pop unique chez mon provider fnac.net, mon adresse email était olivier.hoarau@fnac.net, mon compte local est olivier, celle de ma tendre et chère veronique.hoarau@fnac.net 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.

Si vous disposez d'un email unique avec un seul email rattaché et que vous comptez vous en servir pour plusieurs personnes. Vous pouvez demander à vos interlocuteurs de préciser dans le sujet du mail le destinataire et faire un tri similaire à celui vu précédemment en filtrant sur le champ Subject du mail (*^(Subject):*(veronique|Veronique)).

Voilà un filtre intéressant trouvé à l'adresse suivante http://www.linuxfocus.org/Francais/January2003/article279.shtml. Il permet d'avertir automatiquement l'expéditeur qui vous a envoyé un fichier word.

# Promail script to
# reject word documents. Reject the mail, but do not reply to
# error messages "From MAILER-DAEMON"
# If you use ":0 Bc" instead of ":0 B" then you will still get the mail
:0 H
* !^From.*DAEMON
{
# The mime messages with word documents look like this in the body
# of the message:
#------=_NextPart_000_000C_01C291BE.83569AE0
#Content-Type: application/msword;
# name="some file.doc"
#Content-Transfer-Encoding: base64
#Content-Disposition: attachment;
# filename="real file.doc"
:0 B
* ^Content-Type:.*msword
| (formail -r ; cat /home/olivier/reject-text-msword ) | $SENDMAIL -t
}

# par défaut les autres mails sont envoyés à olivier
:0:
!olivier


Le fichier /home/olivier/reject-text-msword contient un texte décrivant les raisons pour lesquelles vous ne voulez pas recevoir de fichier word et préférez d'autres formats. A noter que ce script est adaptable pour des réponses automatiques en fonction de certains critères.
[Retour haut de la page ]

Configuration du serveur POP

Pour une Mandriva

Vous devez installer le package imap, il contient les serveurs pop2 et pop3. Normalement vous  n'avez aucune config à faire pour configurer le serveur POP sur votre poste Linux,  vous devez avoir un fichier ipop3 sous /etc/xinetd.d contenant :

# default: on
# description: The POP3 service allows remote users to access their mail \
#              using an POP3 client such as Netscape Communicator, mutt, \
#              or fetchmail.
service pop3
{
        socket_type             = stream
        wait                    = no
        user                    = root
        server                  = /usr/sbin/ipop3d
        log_on_success          += USERID
        log_on_failure          += USERID
}

Si ce n'est pas le cas, créez le et relancez xinetd

/etc/rc.d/init.d/xinetd restart

Du coté poste client, configurer votre logiciel de mail favori pour que votre serveur Linux soit le serveur POP (il suffit de rajouter le nom du poste en question dans le champ qui va bien), et puis c'est tout, les courriers seront récupérés dans /var/spool/mail du serveur.

[Retour haut de la page ]

Pour une (k)ubuntu

On va utiliser dovecot, pour l'installer il suffit de taper

sudo apt-get install dovecot-common dovecot-pop3d

on édite maintenant le fichier de configuration /etc/dovecot/dovecot.conf voilà les lignes à modifier

protocols =  pop3

pop3_uidl_format = %08Xu%08Xv

default_mail_env = mbox:/var/spool/mail/%u

disable_plaintext_auth = no

Du coté poste client, configurer votre logiciel de mail favori pour que votre serveur Linux soit le serveur POP (il suffit de rajouter le nom du poste en question dans le champ qui va bien), et puis c'est tout, les courriers seront récupérés dans /var/spool/mail du serveur.

 
[Retour page d'accueil FUNIX]