Voila un billet qui sera sûrement utile à certains, vu que ça l'a été à William.
Comme moi, vous avez sûrement au moins une dizaine de compte mail, et vous voudriez bien.
Cet article vous permettra de centraliser tout vos mails, et d'y accéder via imap, ou via un webmail de votre choix.
Tout ce qu'il vous faudra, c'est un serveur, idéalement sous Gentoo.
L'idée c'est que fetchmail va télécharger les mails, puis les passer à procmail qui s'occupera de les ranger au bon endroit suivant des règle que vous lui préciserez. Et pour y accéder, un serveur imap ira lire tout ça.
Logiciels à installer
emerge ou apt-get sont vos amis:
- fetchmail
- procmail
- bogofilter
- courier-imap
- roundcube ou squirrelmail
Récupérer les mails: Fetchmail
Il suffit de configurer correctement fetchmail avec le fichier .fetchmailrc
poll mail.iksaif.net
protocol pop3
username "bidule@iksaif.net"
password "xxxx"
nokeep
mda "/usr/bin/procmail -d %T"
Pour un compte gmail, je vous invite à aller voir cette page http://download.gna.org/hpr/fetchmail/FAQ/gmail-pop-howto.html.
Ranger les mails: Procmail
Voila de quoi remplir votre fichier ~/.procmailrc (avec de nombreux exemples
).
Attention à bien régler le paramètre MAILDIR !
# caractère verbeux de procmail ; mettre 'yes' permet d'avoir des messages
# supplémentaires
VERBOSE=yes
# mettre /bin/sh surtout si vous utilisez tcsh !
SHELL=/bin/sh
# chemin d'accès aux excutables ; en mettre le minimum, pour n'accèder qu'aux
# programmes indiqus dans le fichier de configuration
PATH=/bin:/usr/bin:/usr/local/bin
# rpertoire o seront stocks les mails ; s'assurer que votre MUA sait y
# accder aussi
MAILDIR=/home/iksaif/.maildir
# si procmail n'arrive pas dlivrer le courrier, cette bote sera utilise
# en dernier ressort : il vaut mieux dfinir cette variable !
#ORGMAIL=$MAILDIR/.emergency-inbox
# bote de rception par dfaut
#DEFAULT=/home/iksaif/.maildir
# fichier de log de procmail ; si vous dfinissez cette variable,
# procmail gardera une trace de son excution dans le fichier
# indiqu. consulter priodiquement !
:0
* ^X-Mailing-List:.*linux-ide@vger.kernel.org
:0
* acpi4asus
.Mailing-List.Linux.acpi4asus/
:0
* eee
.Mailing-List.Linux.eeepc/
:0
* ^(To|Cc|Cci).*(zordania.com)
.Boulot.Zordania/
:0
* ^(To|Cc|Cci).*(pouet@epitech.net)
.Epitech/
:0
* ^(To|Cc|Cci).*(pouet@iksaif.net)
.Mobile/
# Tout ce qui n'a pas t tri jusqu'ici va dans la mailbox principale "inbox"
:0
.Bordel/
Maintenant que fetchmail et procmail sont configuré, il est possible de récupérer ses mails avec la commande "fetchmail".
Mais on a toujours rien pour les lire !
Filtrer les mails: Bogofilter
Un antispam, c'est toujours pratique, on va donc utiliser bogofilter. Pourquoi bogofilter ? Parce qu'il marche bien et qu'il est simple.
Voila les règles à ajouter dans ~/.procmailrc (après DEFAULT=....).
Cette configuration nécessite quatres dossiers :
- Junk - Vrais spam
- Junk/Unsure - Spams probables
- Junk/New - Ici on copie les messages qui sont des spams et qui n'ont pas été détectés
- Junk/False - Ici on copie les spam qui en fait n'en étaient pas
# Utilisation de bogofilter, à commenter si bogofilter n'est pas installé
:0fw
| bogofilter -u -e -p
:0e
{ EXITCODE=75 HOST }
# Si c'est un spam il va dans le dossier Junk
:0:
* ^X-Bogosity: (Spam|Yes)
.Junk/
# Si on est pas sur, il va dans le dossier Junk.Unsure
:0:
* ^X-Bogosity: Unsure
.Junk.Unsure/
# Fin bogofilter
Maintenant, on va rajouter de quoi apprendre à bogofilter à reconnaître les spams.
Voila un petit script shell qui fera l'affaire.
#!/bin/bash
MAILDIR=/home/iksaif/.maildir
if [ -z `echo $MAILDIR/.Junk.New/*/* |grep '/\*/\*'` ] ; then
for spam in $MAILDIR/.Junk.New/*/*; do
bogofilter -Ns -I "${spam}" -p -O "${MAILDIR}/.Junk/cur/`basename ${spam}`"
rm $spam
done
fi
if [ -z `echo $MAILDIR/.Junk.False/*/* |grep '/\*/\*'` ] ; then
for mail in $MAILDIR/.Junk.False/*/*; do
bogofilter -Sn -I "${mail}" -p -O "${MAILDIR}/.Bordel/cur/`basename ${mail}`"
rm "${mail}"
done
fi
Automatiser tout ça avec des crons
Hop, pour lancer le tout toutes les 5 minutes.
$ crontab -e
*/5 * * * * fetchmail &> ~/fethmail.log
*/5 * * * * sh ~/bogofilter.sh &> /dev/null
Accéder aux mails: courrier-imapd
Bon maintenant que tout est bon, on aimerait bien accéder à nos mails !
Il suffit d'installer le serveur imap courrier.
Pour dans le fichier /etc/courier-imap/imapd vérifier que ces valeurs sont les bonnes :
# Hardwire a value for ${MAILDIR}
MAILDIR=.maildir
MAILDIRPATH=.maildir
Maintenant on le lance, et hop, on peut lire ses mails avec son client préféré.
Un webmail: roundcube
Une autre solution peut être d'installer un webmail. roundcube est simple à installer et assez joli.
Normalement l'installation ne devrais pas vous poser de problème, et au pire, y'a les fichiers INSTALL et README ;).