Le premier point intéressant dans FDM est la possibilité d’utiliser des macros. Un exemple intéressant : $maildir="%[home]/Maildir/". L’intérêt de cette macro est qu’elle reprends le tag %[home], autorisant ainsi une grande portabilité de la configuration.
Sans rentrer dans les détails de FDM, celui-ci se configure au travers d’actions (action) exécutés en fonctions de règles (match). Je reviendrais sur les secondes plus tard. Parmi les actions, je qualifierais certaines de destinations, comme par exemple action "INBOX" maildir "${maildir}/INBOX" qui est l’action de placer le courrier dans INBOX.
D’autres actions méritent qu’on revienne dessus. action "bogofilter" rewrite "bogofilter -u -e -p" réécrit le courriel avec bogofilter, rajoutant ainsi des entêtes sur la «qualité» du message. action "maildir-mark-as-read" exec "mf=\"%[mail_file]\" ; mv \"\${mf}\" \"\${mf%%/*}\"/../cur/\"\${mf##*/}:2,S\"" comme son nom l’indique permet de marquer un message comme lu. Il s’agit d’une des fonctions qui ont motivé mon passage de procmail vers fdm.
Avec les filtres, le traitement du spam devient un jeu d’enfant : match "^X-Spam-Flag: YES" in headers actions { "Spam" "maildir-mark-as-read" } suffit pour déplacer les messages content l’entête X-Spam-Flag: YES dans le dossier Spam et de le marquer comme lu. De la même façon, il est aisé de placer le mail venant de listes de discussion dans un dossier : match "^List-Id: .*" in headers action "Parinux". Notez que dans cette expression régulière, les points . auraient du être échappés par \..On peut aussi facilement rediriger les courriels vers une autre adresse mail : match "^List-Post: .*(toto|titi)@dtc.org>" in headers actions { smtp server "smtp.ki.rox" port 25 from "tata@zwip.net" to "tutu@rififi.com" drop }
Le dernier concept dont je n’ai pas parlé est celui de compte (account) qui sert à définir des comptes (pop3[s], imap[s], stdin) sur lesquels aller chercher le courrier. En particulier, on peut noter account "stdin" disabled stdin qui permet de lire le courrier depuis l’entrée standard, avec la commande fdm -a stdin fetch. Ceci permet de dire à Postfix de trier vos mails entrant avec fdm, soit au travers d’un fichier .forward contenant "|/usr/bin/fdm -m -a stdin fetch", soit en passant |/usr/bin/fdm -m -a stdin fetch à l’option mailbox_command de main.cf. Enfin, pour peu que vous nommiez les actions correspondants aux dossiers dans lesquels remettre les courriels venant de comptes extérieurs de la même façon que vos comptes, match string "%[account]" to "(compte_extérieur1|compte_extérieur2|compte_extérieur3)" action "%[account]" les mettra automatiquement dans le dossier correspondant.

une réaction
1 De Thomas Fago - 24/03/2011, 21:46
Ah ben finalement j’ai enfin trouvé votre artcile M Jumel =)
Bonjour d’un mis homme , mis Geek ,
Votre ancien élève, thomas