Serveur mail OS X et archivage des mails

Comme promis dans mon dernier article sur la gestion des entêtes de Spam des mails, je vais détailler un peu la façon dont j’ai organisé l’archivage des mails reçus au boulot.

Pour reprendre le même schéma que précédemment, nous allons nous intéresser à ce qui se passe précisément au niveau du serveur A :

Gestion de l'archivage des mails

Configuration

L’organisation que j’ai retenue est la suivante. Lorsqu’un mail est reçu, il est tout d’abord filtré (nous l’avons vu dans l’article précédent) puis une copie est ensuite envoyée au serveur B. Localement, chaque mail est également envoyé à un compte spécial, créé spécialement à cette fin, nommé archives. De cette façon tous les mails sont archivés et peuvent être retrouvés aisément en cas de besoin, ce qui arrive assez régulièrement, une “fausse manip” étant si vite arrivée.

Pour obtenir cela il faut modifier le fichier main.cf, situé dans le répertoire /Library/Server/Mail/Config/postfix/ pour Server.app (10.8) et dans /etc/postfix/ pour les versions plus anciennes de Mac OS X Server.

Le paramètre en question se nomme always_bcc et doit être renseigné avec l’adresse email du compte d’archive :

always_bcc = archives@my.domain.tld

De cette manière tous les mails entrants seront envoyés au compte archives.

L’archivage est assuré, mais il m’a fallu tout de même faire quelques réglages et développements supplémentaires pour résoudre plusieurs choses :

  • Ne pas archiver les spams, en tout cas ne pas les conserver plus d’un mois, le temps de ressortir d’éventuels faux positifs.
  • Être capable de “former” spamassassin avec les erreurs qu’il pourrait commettre en filtrant les mails.
  • Assurer un stockage chronologique des mails reçus afin de faciliter la recherche ultérieure.

Je vais détailler ici comment je m’y suis pris.

Mail.app

Pour gérer l’archivage j’utilise simplement l’application Mail.app fournie avec le Mac Mini. J’y ai configuré le compte archives et quelques règles de gestion. J’y ai également configuré deux comptes créés préalablement avec l’application Server.app, junkmail et notjunkmail.

Les deux boîtes INBOX de ces deux comptes sont relevées tous les jours par spamassassin à fins d’apprentissage. junkmail reçevra les faux négatifs, c’est à dire les spams qui n’ont pas été reconnus comme tels par le filtre et notjunkmail reçevra au contraire les faux positifs, c’est à dire les mails considérés comme spam alors qu’ils ne le sont pas.

Attention : la relève quotidienne en vue d’apprentissage de spamassassin conduit à la suppression des mails se trouvant dans les deux boîtes INBOX de junkmail et notjunkmail. Veillez à faire une copie des mails que vous y mettez et que vous souhaitez conserver (a priori les faux-positifs).

Les règles utilisées

Le principe général est illustré par ce schéma :

Règles de gestion pour l'archivage des mails

Je vais lister une à une, dans l’ordre de traitement, chacune des règles configurées dans Mail.app.

Un virus a été détecté

mail-rule-virus.jpg

Cette première règle déplace le mail reçu si celui-ci contient un virus dans un dossier local nommé Virus. Nul besoin d’archiver ces mails, par contre je les conserve le temps de vérifier leur contenu. Habituellement cette vérification conduit à une suppression sans autre forme de procès.

X-Spam-Status

mail-rule-spam.jpg

La deuxième règle contrôle l’entête X-Spam-Status positionnée par spamassassin. Ci celui est considéré comme un spam alors le mail est transféré dans le dossier des courriers indésirables du compte archives. Le compte archives étant configuré dans Mail.app pour supprimer automatiquement les indésirables de plus de 30 jours.

Ça laisse le temps de s’apercevoir d’un mail “faux-positif” et de le ressortir de ce dossier. Dans ce cas je l’archive à la main et j’en envoie une copie au compte notjunkmail afin qu’il soit reconnu comme tel par spamassassin.

Notez que j’aurais tout aussi bien pu baser cette règle sur l’entête X-Spam-Flag (qui peut valoir Yes ou No).

Apprentissage SPAM

mail-rule-junk.jpg

Dans le cas où un mail n’a pas été reconnu comme étant du spam par spamassassin mais qu’il l’est par l’antispam intégré de Mail.app alors je conserve le mail dans la boîte de réception du compte archives. Ça me permet de vérifier son état, “faux-positif” éventuellement, et dans ce cas de le déclarer comme non-spam — j’applique ensuite de nouveau les règles dessus — ou de l’envoyer au compte junkmail afin qu’il soit dorénavant reconnu comme spam par spamassassin.

AppleScript ArchivageMessages

mail-rule-archive.jpg

Arrivé à cette règle, le mail est considéré comme sain et doit donc être archivé. Pour cela j’ai adapté les scripts développés par Doug Hellmann en 2007, afin, d’une part, de n’avoir plus qu’un seul source et d’autre part en fonction de ma configuration particulière. Ce script est placé dans le dossier ~/Library/Application Scripts/com.apple.mail/ et vous le trouverez en pièce jointe de cet article.

Ce script range le mail traité dans un dossier mensuel, créé à l’occasion si nécessaire, dans le dossier Archives qui est un dossier IMAP du compte archives.

J’ai choisi de le stocker au niveau IMAP pour le cas où je viendrai à changer de client Mail pour gérer l’archivage[1]. Je n’aurai ainsi pas besoin d’exporter et d’importer ces archives, qui peuvent peser plusieurs (genre beaucoup) Mo voire Go.

Références

  • Doug Hellmann, scripts MailArchiveByDate (Applescript) adaptés par moi-même pour l’archivage.

Note

[1] J’avais utilisé l’application Mail.app il y a quelques années sur un ancien serveur mais cette application a rapidement baissé les bras devant la quantité assez conséquente de mail à gérer, je ne supprimais pas les spams des archives à l’époque. Aujourd’hui c’est l’application Thunderbird qui gère assez facilement ces copieuses archives en attendant de basculer sur le nouveau serveur.

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/8219

Haut de page