= Les mails au CR@NS = Ou comment gérer les mails que l'on reçoit à l'aide des outils libres présents sur zamok. Prérequis: * Se connecter à zamok par ssh * Utiliser un éditeur de texte en ligne de commande (nano, vi, pico, jed, etc. ) == Forwarder les mails vers une nouvelle adresse == Il s'agit de dire à un serveur de mail de transmettre automatiquement les emails reçus à une adresse vers une autre adresse. Il suffit pour cela d'éditer le fichier {{{.forward}}} dans votre home sur zamok. Exemple pas à pas : * Se connecter à zamok, vous obtenez un shell (i.e. une ligne de commande) * {{{cat > .forward [enter]}}} * {{{login@mon_adresse_préférée.org [enter]}}} * {{{[Ctrl-D]}}} * {{{logout [c'est pour se délogguer]}}} Dans ce cas, le serveur zamok du CR@NS transmet les mails destinés à une adresse {{{toto@crans.org}}} vers {{{login@mon_adresse_préférée.org}}}. Pour annuler la redirection, il suffit de supprimer le fichier {{{.forward}}} (taper {{{rm .forward}}}) == Utiliser Procmail == Procmail sert à faire des trucs plus compliqués avec ses mails :-) : filtrage, redirection, programmes externes, etc. Le fichier utilisé est {{{ ~/.procmailrc}}}. Sa syntaxe est la suivante: {{{ :0 [flags] [ : [local_lock_file] ] * }}} Les conditions utilisées sont (en général) des expressions régulières ({{{man egrep}}}) avec un ET sous entendu. Par défaut, procmail utilise les headers du mail, en ignorant les majuscules. Le flag {{{c}}} permet de faire des copies d'un mail. Les actions possibles sont: * {{{!}}} forward vers les adresses mail suivantes * {{{|}}} envoie le mail vers un programme * {{{{ }}} sous bloc de règles. Ne pas oublier un caractère espace après le {{{{}}} Par exemple: {{{ :0: * ^Subject: .*travail ! adresse@profession.com }}} == Utiliser SpamAssassin == === Préliminaires === Commencer par mettre en place un {{{.forward }}} vers {{{procmail}}}: {{{ "| exec /usr/bin/procmail" }}} Ceci redirige tous les mails vers {{{procmail}}} qui va ensuite faire le tri. C'est {{{procmail}}} qui appelle Spam Assassin, et qui déplace (le cas échéant) les mails dans le bon répertoire. === Mails lus en IMAP === Si vous lisez vos mails en IMAP, la gestion des répertoires se fait sur le serveur, donc procmail peut déplacer le spam dans un dossier, ici {{{Mail/Spam}}}. Contenu du {{{.procmailrc}}} {{{ # On pipe vers SpamAssassin # f is for filter, h header and b body piped to spamassassin and W for check :0 Whbf * < 256000 | spamc # Si c'est du spam, ça part dans la mbox associée : :0 : * ^X-Spam-Status: Yes Mail/Spam # Si le serveur distant est blacklisté, et si spamassassin n'a pas reconnu le mail comme spam, # on réécrit le sujet et on redirige tout vers le dossier Spam. # E is for preceding condition did not match (else if) :0 E * ^X-Reject: 554 { :0 Whf * ^Subject:\/.* | formail -i "Subject: *****SPAM***** $MATCH" :0 : Mail/Spam } }}} === Mails lus en POP === Là il faudra se contenter de tagger l'entête du message, ou son sujet, et donc d'utiliser un filtre de message dans votre logiciel de messagerie préféré (Mozilla Thunderbird). === Calculs des scores et Filtres Bayésiens === Spam assassin utilise différents filtres qui donnent un score à un mail. Si le score est suffisamment élevé, le mail est considéré comme du spam. Une catégorie particulièrement intéressante de filtre est les filtres bayésiens, ces fameux filtres qui "apprennent". Pour cela, il faut une base de données de messages non-spam (ham) et de spam, pour bien faire la différence. Il est conseillé de faire travailler spamassassin sur vos propres messages afin que les informations apprises correspondent a ce que vous recevez. Commandes: {{{ sa-learn --spam /path/to/spam/folder sa-learn --ham /path/to/ham/folder }}} Si on fournit pas d'exemples aux filtres bayésiens, spam assassin envoit automatiquement les mails les plus louches et les mails les plus corrects à l'apprentissage. Les filtres bayésiens ne s'activent que lorsque la base de données est suffisamment grande (plusieurs centaines de messages de chaque catégorie). On peut dire à spamassassin qu'il s'est trompé sur un message. === Configuration de spamassassin === Consulter le fichier {{{.spamassassin/user_prefs}}}