Du tri des emails

Depuis quel­ques temps, je me suis décidé à hébergé le mail chez moi. Après avoir un peu tâton­ner avec procmail, je me suis enfin décidé à pas­ser à fdm. Je ne vais pas détailler toute la con­fi­gu­ra­tion ici, vous trou­ve­rez un excel­lent arti­cle sur le sujet sur http://unix­gar­den.com, je vais juste met­tre en exer­gue les points inté­res­sants.

P.S. ma con­fi­gu­ra­tion peut être retrouvé sur mon wiki perso

Le pre­mier point inté­res­sant dans FDM est la pos­si­bi­lité d’uti­li­ser des macros. Un exem­ple inté­res­sant : $maildir="%[home]/Maildir/". L’inté­rêt de cette macro est qu’elle reprends le tag %[home], auto­ri­sant ainsi une grande por­ta­bi­lité de la con­fi­gu­ra­tion.

Sans ren­trer dans les détails de FDM, celui-ci se con­fi­gure au tra­vers d’actions (action) exé­cu­tés en fonc­tions de règles (match). Je revien­drais sur les secon­des plus tard. Parmi les actions, je qua­li­fie­rais cer­tai­nes de des­ti­na­tions, comme par exem­ple action "INBOX" maildir "${maildir}/INBOX" qui est l’action de pla­cer le cour­rier dans INBOX.
D’autres actions méri­tent qu’on revienne des­sus. action "bogofilter" rewrite "bogofilter -u -e -p" réé­crit le cour­riel avec bogofilter, rajou­tant ainsi des entê­tes sur la «qua­lité» du mes­sage. action "maildir-mark-as-read" exec "mf=\"%[mail_file]\" ; mv \"\${mf}\" \"\${mf%%/*}\"/../cur/\"\${mf##*/}:2,S\"" comme son nom l’indi­que per­met de mar­quer un mes­sage comme lu. Il s’agit d’une des fonc­tions qui ont motivé mon pas­sage de procmail vers fdm.

Avec les fil­tres, le trai­te­ment du spam devient un jeu d’enfant : match "^X-Spam-Flag: YES" in headers actions { "Spam" "maildir-mark-as-read" } suf­fit pour dépla­cer les mes­sa­ges con­tent l’entête X-Spam-Flag: YES dans le dos­sier Spam et de le mar­quer comme lu. De la même façon, il est aisé de pla­cer le mail venant de lis­tes de dis­cus­sion dans un dos­sier : match "^List-Id: .*" in hea­ders action "Pari­nux". Notez que dans cette expres­sion régu­lière, les points . auraient du être échap­pés par \..On peut aussi faci­le­ment redi­ri­ger les cour­riels vers une autre adresse mail : match "^List-Post: .*(toto|titi)@dtc.org>" in hea­ders actions { smtp ser­ver "smtp.ki.rox" port 25 from "tata@z­wip.net" to "tutu@­ri­fifi.com" drop }

Le der­nier con­cept dont je n’ai pas parlé est celui de compte (account) qui sert à défi­nir des comp­tes (pop3[s], imap[s], stdin) sur les­quels aller cher­cher le cour­rier. En par­ti­cu­lier, on peut noter account "stdin" disabled stdin qui per­met de lire le cour­rier depuis l’entrée stan­dard, avec la com­mande fdm -a stdin fetch. Ceci per­met de dire à Postfix de trier vos mails entrant avec fdm, soit au tra­vers d’un fichier .forward con­te­nant "|/usr/bin/fdm -m -a stdin fetch", soit en pas­sant |/usr/bin/fdm -m -a stdin fetch à l’option mailbox_command de main.cf. Enfin, pour peu que vous nom­miez les actions cor­res­pon­dants aux dos­siers dans les­quels remet­tre les cour­riels venant de comp­tes exté­rieurs de la même façon que vos comp­tes, match string "%[account]" to "(compte_extérieur1|compte_extérieur2|compte_extérieur3)" action "%[account]" les met­tra auto­ma­ti­que­ment dans le dos­sier cor­res­pon­dant.

Tagcloud
PSL Mutt bash iSCSI Ubuntu Educ IPv6 authentification LED vélo Informatique vserver kernel identification Mathématiques orgcamp Bordage LaTeX OpenStack Iptables mail Réflexions beamer Libre PlanetUbuntuFr Voile Python postfix configuration Essai Vie numérique April CPL ArchLinux Internet Lectures auto hébergement installation PlanetUbuntu Dédibox shell automatisation Admin Sys dovecot JDLL LDAP Humour noir Web Mandriva Randonnée Fedora Coup de gueule GNU-Linux ssh Coups de gueule RaspberryPi Bretagne AdminSys Hadopi UbuntuFr Science-Fiction CAPES DNS loop ISN Drupal imap sudo sympa Spam Amis jeu nfs sieve fluxbox compilation fun Perso debug RATP dotclear cli OSM KDE Paris roundcube orgmode X.org Emacs Debian Épinay OpenSSL code fail eCryptfs Opinions Gentoo Technique Parinux Mozilla