Chapitre 46. Le courrier en console

1. Relever son courrier
2. Trier son courrier avec Procmail et SpamAssassin
3. Lire son courrier avec Mutt
4. C'est parti !

Je vous propose la solution suivante si vous voulez lire votre courrier en console :

1. Relever son courrier

Commencez par installer fetchmail :

# aptitude install fetchmail

Écrivez votre fichier de configuration .fetchmailrc dans votre répertoire personnel 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 POP, 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 messages 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.

2. Trier son courrier avec Procmail et SpamAssassin

Le principe

Procmail est un programme simple capable de trier les messages en regardant leurs en-têtes. Nous allons lui demander de trier le courrier dans différents répertoires, appelés mailbox (boîtes aux lettres).

SpamAssassin est un programme qui parcourt les en-têtes, le message et les éventuelles pièces jointes 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 message une note globale. Par défaut, si la note globale atteint 5.0 (on peut la changer en modifiant son fichier de configuration ~/.spamassassin/user_prefs qui est créé automatiquement à la première utilisation), le message est considéré comme du spam. Spamassassin rajoute alors un en-tête X-Spam-Status: Yes et un rapport de l'analyse dans le corps du message. L'en-tête rajouté par spamassassin permet par exemple à procmail d'aiguiller le spam dans une boîte aux lettres poubelle.

Commencez par installer ces deux programmes (Procmail est normalement déjà installé) :

# aptitude install procmail spamassassin

Le principe du tri de courrier avec Procmail et SpamAssassin est le suivant :

  1. le courrier reçu par Postfix via fetchmail arrive dans le fichier /var/mail/nom_de_l'utilisateur,

  2. Postfix lance Procmail, qui regarde si l'utilisateur a un fichier .procmailrc dans son répertoire personnel,

  3. si oui, il lit ce fichier ~/.procmailrc et suit les instructions qu'il contient,

  4. dans notre cas, ces instructions lui disent de déplacer le courrier dans une des boîtes aux lettres contenues dans le répertoire ~/mail. SpamAssassin est alors éventuellement appelé par Procmail pour détecter les messages indésirables, qui sont ensuite envoyés dans la boîte aux lettres spam.

[Avertissement] Avertissement

Attention, une mauvaise utilisation de Procmail peut aboutir à la perte de messages. Il faut donc toujours faire des tests après la mise en place et après chaque modification de sa configuration.

La pratique

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 des manuels man procmailrc et man procmailex.

Créez un sous-répertoire mail dans votre répertoire personnel qui accueillera toutes vos boîtes aux lettres :

% mkdir ~/mail

Les boîtes aux lettres seront des sous-répertoires du répertoire mail et seront créées automatiquement par Procmail au premier message aiguillé dedans.

3. Lire son courrier avec Mutt

Installer et configurer Mutt

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

Éditez-le et personnalisez au minimum les deux premiers paramètres (le champ From et la liste des adresses électroniques utilisées). Avec le fichier de configuration que je vous propose, Mutt détermine la liste des boîtes aux lettres à partir de la liste des sous-répertoires du répertoire ~/mail/ (les sous-répertoires correspondant aux boîtes aux lettres sont créés à la réception du premier message pour cette boîte aux lettres). 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. À chaque entrée dans le carnet d'adresse, vous devez associer une clef que vous pourrez alors utiliser dans mutt à la place du nom et de l'adresse électronique complète. Les lignes de fichier doivent avoir la syntaxe suivante :

alias clef Nom_et_Prénom <adresse_électronique>

Par exemple, si vous voulez me mettre dans votre carnet d'adresse en me désignant par la clef alex, ajoutez la ligne :

alias alex Alexis de Lattre <alexis@via.ecp.fr>

Utiliser Mutt

Commencez par lancer Mutt :

% mutt -y

La liste des boîtes aux lettres apparaît à l'écran : Figure 46.1.

Figure 46.1. Mutt : liste des boîtes aux lettres

Mutt : liste des boîtes aux lettres

Sélectionnez une boîte aux lettres pour lire les messages qui s'y trouvent (Figure 46.2). Ensuite, pour passer d'une boîte aux lettres à une autre, utilisez la touche c : si une boîte aux lettres contient un nouveau message, son nom apparaît et vous n'avez plus qu'à taper Entrée ; si vous voulez aller à une boîte aux lettres particulière, tapez son nom précédé du signe = (la complétion automatique marche).

Figure 46.2. Mutt : messages dans une boîte aux lettres

Mutt : messages dans une boîte aux lettres

Pour écrire une lettre, placez-vous dans n'importe quelle boîte aux lettres et tapez m. Saisissez l'adresse du destinataire ou sa clef 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 en-têtes que vous pouvez compléter ou modifier. Tapez le texte du message en dessous des en-têtes :Figure 46.3

Figure 46.3. Mutt : rédaction d'un message

Mutt : rédaction d'un message

Une fois que vous avez fini, enregistrez et quittez. Vous arrivez alors dans l'écran d'envoi des messages, dans lequel vous pouvez utiliser les commandes suivantes :

  • t pour modifier la liste des destinataires,

  • c pour modifier la liste des personnes en copie (Cc),

  • b pour modifier la liste des personnes en copie cachée (Bcc),

  • s pour modifier le Subject,

  • e pour rééditer le message,

  • a pour attacher des fichiers au message,

  • p pour accéder aux fonctions de chiffrement et de signature de GnuPG (voir ci-dessous),

  • q pour annuler l'envoi,

  • y pour envoyer le message.

Dans une boîte aux lettres, que vous soyez dans la liste des messages ou en train d'afficher un message, vous avez accès aux touches suivantes :

  • r pour répondre à l'expéditeur du message sélectionné,

  • g pour répondre à l'expéditeur et aux autres destinataires du message sélectionné,

  • Tab pour aller au prochain message non lu,

  • v pour afficher la liste des fichiers attachés à un message puis s pour les enregistrer sur le disque dur,

  • h pour afficher le message avec tous ses en-têtes (et de nouveau h pour enlever l'affichage des en-têtes),

  • f pour transférer le message sélectionné à quelqu'un,

  • d pour marquer le message comme devant être effacé,

  • 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 l'affichage de la boîte aux lettres (effacer les messages marqués comme devant être effacés et afficher les messages qui viennent d'arriver),

  • G pour aller directement à la liste des boîtes aux lettres.

Quand vous êtes dans la liste des messages d'une boîte aux lettres (et non quand vous êtes en train d'afficher un message), vous avez en plus accès aux touches suivantes :

  • o pour trier les messages de la boîte aux lettres : 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 marqueur sur un message : il propose alors une liste des marqueurs (cela permet notamment de remettre un message comme non-lu en remettant le marqueur N),

  • l pour n'afficher que certains messages de la boîte aux lettres, 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 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.

[Note] Note

Pour revenir à la liste des messages quand vous êtes en train d'afficher un message, tapez e.

A tout moment, vous pouvez taper ? pour accéder à la liste des touches disponibles avec leur fonction.

4. C'est parti !

Maintenant que tout est en place, vous pouvez :

  1. lancer le rapatriement de vos messages :

    % fetchmail
    
  2. vérifier qu'ils sont correctement triés en consultant le fichier ~/.procmail.log ;

  3. les lire avec mutt :

    % mutt -y
    

Quand vous envoyez un message avec mutt, il est transmis à Postfix qui essaie alors de joindre le serveur du destinataire, ou votre serveur relais si vous en avez défini un. Si ce serveur n'est pas joignable ou si vous n'êtes pas connecté à Internet, le message reste alors stocké dans la queue de messages de Postfix.

Pour voir les messages en attente dans la queue de Postfix :


% mailq

Pour effacer un mail stocké dans la queue :

# postsuper -d ID_du_message

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

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.