Au bout d'un certain temps, si vous recevez beaucoup de courrier, vos boîtes aux lettres peuvent commencer à devenir trop grosses, ce qui a deux inconvénients : ouvrir une boîte aux lettres (ou la synchroniser, comme expliqué ci-dessous) prend beaucoup de temps, et le courrier commence à prendre beaucoup d'espace disque.
Pour remédier à ce problème, je vous propose d'utiliser le programme archivemail pour :
supprimer les messages trop vieux de certaines boîtes aux lettres (par exemple celles contenant des mailing-lists archivées sur le Web) ;
compresser les messages trop vieux de certaines boîtes aux lettres.
Commencez par installer le programme archivemail :
#
aptitude install archivemail
La syntaxe d'archivemail est très simple :
pour supprimer les messages vieux de plus de 90 jours des
boîtes aux lettres mailbox1
et mailbox2
:
%
archivemail -d 90 --delete ~/mail/mailbox1 ~/mail/mailbox2
pour compresser les messages vieux de plus de 120 jours des
boîtes aux lettres mailbox3
et mailbox4
et les stocker au format mbox dans le répertoire
~/mail-archive
préalablement créé :
%
archivemail -d 120 -o ~/mail-archive ~/mail/mailbox3 ~/mail/mailbox4
Si les commandes précédentes ne marchent pas et génèrent un message d'erreur bizarre, il faut relancer la commande en ajoutant l'option -v (verbose) et regarder quel message particulier est responsable de l'erreur ; ensuite, éditer ce message fautif pour essayer de comprendre pourquoi il empêche archivemail de fonctionner, et supprimer le à la main s'il n'est pas important.
Si vous décidez de mettre en place une telle solution, vous aurez probablement envie que cela se fasse automatiquement, par exemple chaque lundi à 12h42. Pour cela, vous pouvez utiliser la commande crontab, comme expliqué au Chapitre 51 et résumée ici. Editez votre cron avec la commande crontab -e et rajoutez les deux lignes suivantes :
42 12 * * 1 archivemail --quiet -d 90 --delete ~/mail/mailbox1 ~/mail/mailbox2 43 12 * * 1 archivemail --quiet -d 120 -o ~/mail-archive ~/mail/mailbox3 ~/mail/mailbox4
C'est la configuration que j'utilise personnellement ; je vais donc parler à la première personne ! Je reçois mon courrier sur un serveur sous Debian sur lequel j'ai un accès par SSH. Sur ce serveur, je trie mes messages avec Procmail et SpamAssassin et je les lis avec Mutt, exactement comme expliqué au Chapitre 46. Sur ce serveur, je fais également l'archivage de mes messages comme expliqué dans la section précédente. Avec cette solution, je peux lire mes messages depuis n'importe quel ordinateur connecté à Internet et sur lequel je peux installer un client SSH.
J'ai aussi un ordinateur portable sous Debian, et je veux pouvoir garder mes messages sur mon portable même quand il n'est pas connecté. En plus de ça, je veux :
pouvoir synchroniser facilement toutes mes boîtes aux lettres entre le serveur et mon portable de manière sécurisée (c'est-à-dire sans que le mot de passe soit envoyé en clair sur le réseau ni stocké en clair dans un fichier texte sur mon portable) ;
que les messages que je lis sur mon portable et ceux que je lis sur le serveur soient marqués comme lus sur mon portable et sur le serveur après synchronisation ;
que les messages que je marque pour être effacés sur mon portable et ceux que je marque pour être effacés sur le serveur soient effacés sur mon portable et sur le serveur après synchronisation ;
que les messages auxquels je réponds sur mon portable et ceux auxquels je réponds sur le serveur soient marqués comme répondus sur mon portable et sur le serveur après synchronisation.
C'est le programme isync qui va s'occuper de la synchronisation. La mise en place de ma solution avec isync requiert trois choses :
un accès SSH au serveur ;
un serveur IMAP installé sur le serveur (mais pas forcémment joignable de l'extérieur) ;
des boîtes aux lettres au format Maildir sur le serveur.
Note | |
---|---|
Si vous avez suivi les instructions du Chapitre 46, vos boîtes aux lettres sont au format Maildir. |
Dans ce genre de bidouilles, une mauvaise manipulation est vite arrivée : je vous conseille donc de faire une sauvegarde de vos messages avant de commencer.
Il faut qu'un serveur IMAP soit installé sur le serveur et repérer
l'exécutable du serveur IMAP. Sur une Debian qui utilise le serveur IMAP
fourni dans le paquet uw-imapd, l'exécutable du
serveur est /usr/sbin/imapd
.
Ensuite, il faut modifier la configuration de
mutt sur le serveur. Sur le serveur, éditez le
fichier de configuration ~/.muttrc
et, si vous
utilisez mon fichier de configuration, décommentez la ligne suivante,
située dans la première partie :
set maildir_trash
Je suppose que le portable n'a pour l'instant aucune configuration de faite au niveau mail.
Mutt est normalement déjà installé. Récupérez mon fichier de configuration type :
%
wget http://formation-debian.via.ecp.fr/fichiers-config/muttrc
%
mv muttrc ~/.muttrc
Editez le fichier ~/.muttrc
. Commencez
par adapter la première partie intitulée Configuration
Générale et décommentez la ligne suivante :
set maildir_trash
Ensuite, dans la partie intitulée Binding des touches, dans le paragraphe sur les macros, vous pouvez éventuellement commenter les lignes qui associent la touche F4 avec fetchmail et décommenter les lignes qui associent F4 avec isync.
Créez le sous-répertoire mail/
dans votre répertoire personnel pour
accueillir vos boîtes aux lettres :
%
mkdir ~/mail/
Installez isync :
#
aptitude install isync
Récupérez mon fichier de configuration type pour isync :
%
wget http://formation-debian.via.ecp.fr/fichiers-config/isyncrc
%
mv isyncrc ~/.isyncrc
Editez le fichier ~/.isyncrc
et
adaptez les lignes commençant par :
Host : mettez le nom DNS de votre serveur ;
Host serveur.exemple.org
Tunnel : mettez votre login, le nom DNS de votre serveur et l'exécutable du serveur IMAP sur votre serveur.
Tunnel "ssh -q toto@serveur.exemple.org /usr/sbin/imapd"
Tout est maintenant prêt pour la première synchronisation ! Sur votre portable, vous allez lancer isync avec l'option -a pour synchroniser toutes les boîtes aux lettres, l'option -L pour créer automatiquement les boîtes aux lettres en local et l'option -V (verbose) pour faciliter le diagnostic des éventuels problèmes. Si en plus vous avez mis en place ssh-agent comme expliqué dans le Chapitre 40, exécutez ssh-add préalablement pour ne même pas avoir à taper votre mot de passe !
%
isync -a -L -V
Si vous avez beaucoup de messages sur le serveur, cela risque de prendre un peu de temps. Pour les prochaines synchronisations, vous pourrez exécuter :
isync -a pour synchroniser toutes les boîtes aux lettres ;
isync mailbox1 mailbox2 pour ne synchroniser que certaines boîtes aux lettres.
et ce sera plus rapide puisqu'il n'aura que les nouveaux messages à télécharger.
Note | |
---|---|
Un grand merci à Oswald Buddenhagen, nouveau mainteneur d'isync, pour m'avoir aidé à faire marcher cette solution. |
A l'adresse http://www.vilya.org/gpg/gpg-intro.html, vous trouverez une documentation en français très bien faite sur GnuPG, son utilisation et son intégration à mutt.
Il est souvent nécessaire de devoir adapter l'adresse électronique que l'on utilise en fonction de l'adresse à laquelle on écrit. Par exemple, je peux avoir envie d'utiliser mon adresse @via.ecp.fr à chaque fois que j'écris à quelqu'un qui a une adresse @via.ecp.fr.
send-hook '~t ^.*@via\.ecp\.fr$' 'set from="robert.dupont@via.ecp.fr"'
De même, je peux vouloir utiliser mon adresse professionnelle à chaque fois que j'écris à un collègue. Il suffit alors d'ajouter des entrées de ce type pour chaque collègue (remplacer toto@free.fr par l'adresse de vos collègues) :
send-hook '~t ^toto@free\.fr$' 'set from="robert.dupont@mon.employeur.fr"'
Ces deux exemples sont commentés à la fin de la section 3 du fichier de configuration de Mutt que nous vous avons fourni.