Ceci est une ancienne révision du document !
Version : dapper drake
Rédigé par bidou en cours de construction. toutes les idées sont les bienvenues.
Description
L'objectif du tuto est l'installation et l'utilisation de postfix pour l'envoi de mails, de fetchmail pour la recupération et de deux clients mails pour la visualisation et l'envoi des courriels.
Pourquoi utiliser deux clients mails ?
Thunderbird permet la lecture des mails depuis sont PC comme le fait tout à chacun mais mutt lit ses mails en console donc depuis m'importe quel PC pourvu que le serveur soit relié au net.
Pour que le tuto soit plus clair, je vais définir deux boites aux lettres:
- la boite d'un fournisseur d'accès comme free, laposte toto@fai.fr
- la boite du serveur de mail interne toto@postfix.fr
Installation des paquets
Avant tout il faut installer un certains nombres de paquets.
Un simple
sudo apt-get install postfix fetchmail procmail mutt
suffit.
configuration de fetchmail
passons maintenant à la configuration de fetchmail. fetchmail est chargé de la récupération des mails. Il faut définir un fichier dans le répertoire personnel de l'utilisateur
sudo gedit .fetchmailrc
un fichier vide s'ouvre, il faut ajouter:
## fai : votre fournisseur d'accès Internet.
poll pop.fai.fr protocol pop3 user toto@fai.net password mot de passe here options keep
puis sauvegarder le fichier.
l'option keep permet de faire des tests sans perdre de mails. Je dis ça, vous êtes prévenus, ça m’est arrivé de perdre quelques mails avant de me rendre compte de ce qu’il se passait.
A la place de keep, vous pouvez par la suite utiliser le paramètre fetchall. Il permet de récupérer tous les mails. c'est utile si on reçoit beaucoup de mails et que l'on ne veut pas encombrer le serveur du FAI.
protection du fichier
maintenant il faut protèger ce fichier qui montre en clair les mots de passe du compte.c'est une étape que je n'ai pas encore réaliser(par fainéantise) mais je vous livre la méthode.
On définit un utilisateur fetchmail (ça manque d’originalité, vous pouvez bien sûr l’appeler comme vous voulez) doit être créé
sudo adduser -g 65534 -d /répertoire_des_mails fetchmail
- -g pour utiliser le groupe nogroup. Mettez le GID qui correspond à nogroup, ici 65534. En fait, vous mettez ce que vous voulez (100 pour users par exemple est pas mal non plus).
- -d pour utiliser le répertoire /home/toto/Maildir par exemple comme répertoire maison (= répertoire utilisateur).
Changez les utilisateurs/droits pour que ça aille bien :
sudo chown fetchmail:nogroup /home/toto/.fetchmailrc sudo chmod 600 /home/toto/.fetchmailrc sudo chown -R fetchmail:nogroup /home/toto/Maildir sudo chmod 700 /home/toto/Maildir
Reste ensuite à vérifier 2 choses :
- Que le fichier /etc/default/fetchmail (sur Debian) autorise le lancement de fetchmail en démon : SERVICE doit être à true dans ce fichier.
- Que le script de lancement /etc/init.d/fetchmail écrive bien tout ce qu’il faut dans /home/toto/Maildir et pas ailleurs, sinon ça risque de ne pas fonctionner correctement.
Voilà. Normalement, un lancement de fetchmail.
configuration de procmail
Procmail est chargé de faire le tri de mails à l'aide de filtres appelés recettes. créons un répertoire pour stocker les mails dans le répertoire personnel de toto
sudo maildirmake Maildir
Ceci créera la boite mail Maildir/ dans votre ~, autrement dit, dans votre /home/toto.
Une fois de plus il faut rédiger un fichier dans son répertoire personnel par exemple.
sudo gedit .procmailrc
Il faut compléter la page vierge pour obtenir un fichier de ce type
MAILDIR=/home/toto/Maildir ## Faites en sorte que ça existe. LOGFILE=/home/toto/.procmaillog LOGABSTRACT=no #VERBOSE=on (Est utilisé uniquement pour le débogage.) VERBOSE=off FORMAIL=/usr/bin/formail NL=" ## Les lignes de « recipe » commencent par « :0 ». ## Ne mettez pas de commentaires dans les lignes de « recipe ». ## Désactivez un « recipe » grace au NON logique (!). ## Les conditions commencent par *, utilisez des expressions rationnelles. ## Les conditions sont associées avec un ET logique. ## Tout ce qui suit * est passé directement à egrep. ## Une ligne d'action suit les conditions, ici c'est un nom de BAL.
# Utilise formail pour les courriers dupliqués. :0 Whc: .msgid.lock | $FORMAIL -D 16384 .msgid.cache
#utilisation de spamassassin :0 a $MAILDIR/duplicates :0fw | spamassassin -P :0: * ^X-Spam-Status: Yes $MAILDIR/spambox
# Spam à la poubelle. :0 * ^Subject:.*(credit|cash|money|debt|sex|sale|loan) $MAILDIR/spam
# Plus de messages HTML. :0 * ^Content-Type:.*html $MAILDIR/junk
# mailing list du wiki-ubuntu :0 * ^Subject:.*(UWiki) $MAILDIR/UWiki
#tri des mails locaux :0 * ^TOtoto@postfix.fr $MAILDIR/locaux :0 * ^TOroot@postfix.fr $MAILDIR/locaux ####################################### # Dernière règle : tout ce qui arrive # # ici va dans la boîte par défaut. # ####################################### :0 * .* Inbox # Fin de fichier
MAILDIR=/home/toto/Maildir est le répertoire où seront stockés les mails triés.
LOGFILE=/home/toto/.procmaillog est le fichier d'erreurs.
viens ensuite les différentes recettes. On marque le début d'une recette par :0 puis on indique le critère de tri par * ^TO ou *^Subject et enfin le fichier où l'on stocke les mails. par exemple $MAILDIR/locaux
Pour plus d'explications, il y a de nombreux sites parlant de la réalisation de recettes très élaborées. Dans le fichier on a:
- une recette pour éviter les mails dupliqués
- l'utilisation de spamassassin
- un tri en fonction des listes de diffusions
- les mails internes
- et le restant est stocké dans le fichier Inbox.
vérification du fonctionnement du serveur
cette étape peut être faite à partir du moment où le serveur smtp est installé. le plus simple est de s'envoyer des messages par son client mail habituel. où utiliser la commande mail du paquet mailx. par exemple:
mail -s essai toto@fai.net Cc:<enter> essai pour voir
puis ctrl+d pour envoyer un mail avec pour sujet essai à toto@fai.net et comme texte essai pour voir. sans copie particulière.
comment relever ses mails avec fetchmail.
il suffit de taper
fetchmail -akv -m "/usr/bin/procmail -d %T"
Si les droits sont bien attribués, on voit fetcmail interroger le fai et le voir récupérer les mails.
si non il faut vous les rattribué avec un chmod, chgrp et chown.
comment vérifier le tri?
il faut simplement aller dans le dossier Maildir et cliquer sur les fichiers définis dans procmail.
tant qu'un courriel n'est pas trié par la recette, le fichier correspondant n'apparait pas.
si vous ne les trouvaient pas ils peuvent être stockés dans le répertoire /var/mail/toto ou root.
configuration de thunderbird
on définit un compte pop dans thunderbird de façon classique. Puis on se rend dans les paramètres du compte, on change le répertoire du dossier local pour le rediriger vers le dossier Maildir crée auparavant.
ici, il y a une petite subtilité importante. D'autres trouveront peut-être une solution différente.
pour que les fichiers triés par procmail apparaissent et soient gérer par thunderbird, il faut créer des sous-dossiers dans les dossiers locaux.
par exemple, créer un sous-dossier spambox pour récupérer les pouriels. Ou un sous-dossier locaux pour les messages internes. il en faut autant que de fichier trié par procmail.
configuration de mutt
configuration de postfix
conclusion
pour plus d'information rendez vous sur le forumhttp://forum.ubuntu-fr.org/viewtopic.php?id=71599