Je vous propose la solution suivante si vous voulez lire votre mail en console :
utiliser fetchmail pour rapatrier votre mail sur votre ordinateur (dans le cas où l'ordinateur sur lequel vous comptez lire votre mail n'est pas le même que celui qui héberge votre boite mail) ;
utiliser procmail pour le trier et spamassassin pour filtrer le spam ;
utiliser mutt comme lecteur de mail.
Commencez par installer fetchmail :
#
apt-get install fetchmail
Dès l'installation du paquet, il vous demande : Faut-il installer un service fetchmail pour tout le système ?. Répondez Non.
Ecrivez votre fichier de configuration
.fetchmailrc
dans votre home en vous basant sur mon
fichier de configuration type :
%
cp /root/config/fetchmailrc ~/.fetchmailrc
ou :
%
wget http://formation-debian.via.ecp.fr/fichiers-config/fetchmailrc
%
mv fetchmailrc ~/.fetchmailrc
et modifiez le nom du serveur de mail, le login et le mot de passe.
Le fichier de configuration doit avoir les permissions 600, sinon fetchmail refuse de fonctionner :
%
chmod 600 ~/.fetchmailrc
Pour rapatrier les mails depuis le serveur sur votre ordinateur, il suffira de lancer la commande :
%
fetchmail
mais avant ça, nous allons mettre en place le filtrage avec procmail et spamassassin.
Procmail est un programme simple capable de trier les mails en regardant leurs headers. Nous allons lui demander de trier le mail dans différents répertoires, appelés mailbox.
Spamassassin est un programme qui scanne
les headers, le message et les éventuelles pièces jointes des mails
et les analyse. Pendant cette analyse, il regarde un certain nombre
de critères généralement vérifiés par les spams, à chaque critère
étant associé un nombre de points (plus le critère est significatif,
plus le nombre de points est grand). Enfin, il additionne les
points pour attribuer au mail une note globale. Par défaut, si
la note globale atteint 5.0 (on peut la changer en modifiant le
fichier de configuration de spamassassin
~/.spamassassin/user_prefs
qui est crée
automatiquement à la première utilisation), le mail est considéré
comme du spam. Spamassassin lui rajoute
alors un header X-Spam-Status: Yes et un
rapport de l'analyse dans le corps du mail. Le header rajouté
par spamassassin permet par exemple à
procmail d'aiguiller le spam dans une mailbox
poubelle.
Commencez par installer ces deux programmes (procmail est normalement déjà installé...) :
#
apt-get install procmail spamassassin
Le principe du tri de mail avec procmail et spamassassin est la suivante :
le mail reçu par Postfix
via fetchmail arrive dans le fichier
/var/mail/nom_de_l'utilisateur
,
Postfix regarde si l'utilisateur a
un fichier .procmailrc
dans son home,
si oui, il lit ce fichier
~/.procmailrc
et suit les
instructions qu'il contient,
dans notre cas, ces instructions lui disent de
déplacer le mail dans une des mailboxes contenues dans le répertoire
~/mail
. Spamassassin est alors
éventuellement appelé par procmail pour envoyer
dans la mailbox poubelle appelée "spam" les mails
qu'il considère comme étant du spam.
Attention, une mauvaise utilisation de procmail peut aboutir à la perte de mails. Il faut donc toujours faire des tests après la mise en place et après chaque modification de la configuration de procmail.
Utilisez le fichier de configuration d'exemple pour
procmail procmailrc
:
%
cp /root/config/procmailrc ~/.procmailrc
ou :
%
wget http://formation-debian.via.ecp.fr/fichiers-config/procmailrc
%
mv procmailrc ~/.procmailrc
Regardez les commentaires écrits dans ce fichier pour comprendre comment il est construit et personnalisez-le. Aidez-vous éventuellement de man procmailrc et man procmailex.
Créez un répertoire mail
dans votre home qui
accueillera toutes vos mailboxes :
%
mkdir ~/mail
Les mailboxes seront des sous-répertoires du répertoire
mail
et seront crées automatiquement par
procmail au premier mail aiguillé dans la
mailbox.
Le paquet mutt est normalement déjà installé.
Le fichier de configuration de mutt est
~/.muttrc
. Utilisez mon fichier de configuration
d'exemple comme base de travail :
%
cp /root/config/muttrc ~/.muttrc
ou :
%
wget http://formation-debian.via.ecp.fr/fichiers-config/muttrc
%
mv muttrc ~/.muttrc
Editez-le et personnalisez au minimum les deux premiers paramètres
(le champ From et la liste des adresses e-mail utilisées). Avec le
fichier de configuration que je vous propose, mutt
génère la liste des mailboxes à partir de la liste des sous-répertoires
du répertoire ~/mail/
(les sous-répertoires
correspondant aux mailboxes sont créés à la réception du premier mail
pour cette mailbox). Pour avoir la liste complète des paramètres et
de leur description, utilisez man muttrc ou ce manuel d'utilisation en
français.
Si vous le désirez, vous pouvez écrire un carnet d'adresse
pour mutt sous forme d'un fichier texte
~/.aliases
. Chaque ligne du fichier correspond à
une entrée dans le carnet d'adresse. A chaque entrée dans le carnet
d'adresse, vous devez associer une clé que vous pourrez alors utiliser dans
mutt à la place du nom et de l'adresse e-mail
complète. Les lignes de fichier doivent avoir la syntaxe suivante
:
alias clé Nom_et_Prénom <adresse_mail>
Par exemple, si vous voulez me mettre dans votre carnet d'adresse en me désignant par la clé alex, ajoutez la ligne :
alias alex Alexis de Lattre <alexis@via.ecp.fr>
Commencez par lancer mutt :
%
mutt -y
La liste des mailboxes apparaît à l'écran :
Sélectionnez une mailbox pour lire les messages qui s'y trouvent. Ensuite, pour passer d'une mailbox à une autre, utilisez la touche c : si une mailbox contient un nouveau mail, son nom apparaît et vous n'avez plus qu'à taper Entrée ; si vous voulez aller à une mailbox particulière, tapez son nom précédé du signe = (la complétion automatique marche).
Pour écrire un mail, placez-vous dans n'importe quelle mailbox et tapez m. Rentrez l'adresse du destinataire ou sa clé si vous l'avez mis dans votre fichier d'alias, puis le sujet du message. Mutt ouvre alors votre éditeur de texte préféré (vim si vous n'avez pas changé ce paramètre dans le fichier de configuration). Le texte contient déjà des headers que vous pouvez compléter et / ou modifier. Tapez le texte du message en dessous des headers :
Une fois que vous avez fini, enregistrez et quittez... Vous arriver alors dans l'écran d'envoi des mails :
Dans cet écran, vous pouvez appuyer sur :
t pour modifier la liste des personnes destinataires,
c pour modifier la liste des personnes en Cc,
b pour modifier la liste des personnes en Bcc,
s pour modifier le Subject,
e pour rééditer le message,
a pour attacher des fichiers au mail,
p pour accéder aux fonctions de cryptage et de signature de GnuPG (voir ci-dessous),
q pour annuler l'envoi du mail,
y pour envoyer le mail.
Dans une mailbox, que vous soyez dans la liste des messages ou entrain d'afficher un message, vous avez accès aux touches suivantes :
r pour répondre à l'expéditeur du mail sélectionné,
g pour répondre à l'expéditeur et aux autres destinataires du mail sélectionné,
Tab pour aller au mail non lu suivant,
v pour faire la liste des fichiers attachés d'un mail puis s pour les détacher et les enregistrer sur le disque dur,
h pour afficher le message avec tous ses headers (et de nouveau h pour enlever l'affichage des headers),
f pour forwarder le mail sélectionné à quelqu'un,
d pour marquer le mail comme devant être effaçé,
u pour annuler le marquage d'effacement,
F pour marquer le message comme important, i.e. afficher un point d'exclamation au niveau du message (idem pour enlever le marquage),
a pour ajouter ou éditer l'entrée de l'expéditeur du message dans le carnet d'adresse,
$ pour réactualiser la mailbox (effacer les messages marqués comme devant être effaçés et afficher les messages qui viennent d'arriver),
G pour aller directement à la liste des mailboxes.
Quand vous êtes dans la liste des messages d'une mailbox (et non quand vous êtes entrain d'afficher un message), vous avez en plus accès aux touches suivantes :
o pour trier les messages de la mailbox : il propose alors le choix entre un tri par date, par expéditeur, par destinataire, par sujet, par discussion (tri normal), etc...
w pour mettre un flag sur un message : il propose alors une liste des flags (cela permet notamment de remettre un message comme non-lu en remettant le flag N),
l pour n'afficher que certains messages de la mailbox : tapez alors :
~f toto pour afficher les messages contenant toto dans le champ From,
~C titi pour afficher les messages contenant titi dans le champ To et/ou dans le champ Cc (taper ~t titi pour se limiter au champ To et ~c titi pour se limiter au champ Cc),
~s urgent pour afficher les messages contenant urgent dans le sujet,
~b bruit pour afficher les messages contenant le mot bruit dans le texte du message,
~F pour afficher les messages marqués comme important,
~A pour afficher tous les messages.
q pour quitter Mutt.
Pour revenir à la liste des messages quand vous êtes entrain d'afficher un message, tapez e.
A tout moment, vous pouvez taper ? pour accéder à la liste des touches disponibles avec leur fonction.
Maintenant que tout est en place, vous pouvez :
lancer le rapatriement de vos mails :
%
fetchmail
vérifier qu'ils sont correctement triés en consultant le
fichier ~/.procmail.log
;
les lire avec mutt :
%
mutt -y
Quand vous envoyez un mail avec mutt, mutt le transmet à Postfix qui essaye alors de joindre le serveur mail du destinataire. Si le serveur mail du destinataire n'est pas joignable ou si vous n'êtes pas connecté à Internet, le mail reste alors stocké dans la queue de mails de Postfix.
Pour voir les mails stockés dans la queue de Postfix :
%
mailq
Pour effacer un mail stocké dans la queue :
#
postsuper -d ID_du_message
où ID_du_message est l'ID du message tel qu'il apparaît avec la commande mailq.
Postfix essaye de vider sa queue à intervalles réguliers. Pour le forcer à vider sa queue immédiatement :
%
postqueue -f
Normalement, cette commande est exécutée automatiquement à chaque établissement d'une connexion PPP.
Pour vous rendre la vie plus facile, j'ai créé des raccourcis
clavier vers ces commandes dans mutt (cf .muttrc
) :
F2 pour exécuter mailq,
F3 pour exécuter postqueue -f,
F4 pour exécuter fetchmail.