Learn/fr
Version
Mainteneur
Contributeurs initiaux
Jooris Emmanuel for Firewall-services, [1]Daniel B. from Firewall Services, Brian Read , Tim Litwiller , Michael McCarn and Jesper Knudsen
Description
Script (fondé sur LearnAsSpam) qui permet aux utilisateurs d'interagir avec spamassasin simplement en déplaçant le message dans un répertoire spécifique de leur boîte courriel (fonctionne uniquement en IMAP).
- Apprendre le message en tant que Spam
- Apprendre le message en tant que Ham
- Ajoute en liste blanche l'expéditeur pour que ses messages ne soient plus reconnus en tant que Spam.
Lexique
- SPAM : courriel non désiré ou encore «pourriel».
- HAM : courriel, message électronique qui n'est pas un SPAM.
- faux positif : HAM qui est détecté comme un SPAM.
- faux négatif : SPAM qui passe au travers des mailles du filet.
Installation
yum --enablerepo=smecontribs install smeserver-learn
Activer le filtre Bayesien. Voir le paragraphe Autoapprentissage Bayésien de la page Email/fr pour une installation complète. La configuration minimum serait :
db configuration setprop spamassassin UseBayes 1 config setprop spamassassin BayesAutoLearnThresholdSpam 6.00 config setprop spamassassin BayesAutoLearnThresholdNonspam 0.10 expand-template /etc/mail/spamassassin/local.cf sa-learn --sync --dbpath /var/spool/spamd/.spamassassin -u spamd chown spamd.spamd /var/spool/spamd/.spamassassin/bayes_* chown spamd.spamd /var/spool/spamd/.spamassassin/bayes.mutex chmod 640 /var/spool/spamd/.spamassassin/bayes_* config setprop spamassassin status enabled config setprop spamassassin RejectLevel 12 config setprop spamassassin TagLevel 4 config setprop spamassassin Sensitivity custom signal-event email-update
N’oubliez pas de configurer les clés de la base de données en fonction de vos besoins et de régénérer le fichier de configuration.
Documentation
smeserver-learn stocke toutes les clefs dont il a besoin dans la base de données configuration (le signe > indique une sous-clef) :
LearnAsSpam | Clef de configuration pour la partie d'apprentissage des messages comme spam. | |
>status={enabled,disabled} | Activation ou non de l'apprentissage des spams. | |
>tag=$string | Tag à mettre devant le message pour avertir l'utilisateur que le message a été appris comme spam. | |
>dir=$string | Nom du répertoire où l'on place les spams qui seront appris. | |
>SpamLinks=$string | Permet de créer des répertoires IMAP virtuels liés au dossier «junkmail». Utile pour les clients IOS qui doivent continuer à utiliser le dossier de courriels indésirables «junkmail» et ne peuvent pas définir un autre dossier. Plusieurs liens peuvent être entrés, séparés par des virgules ",". Par défaut, le champ est vide () pour désactivation. D'autres exemples suivent le tableau. | |
>DeleteAfterLearn={enabled,disabled} | Effacer le message qui a été appris au lieu de le déplacer dans le répertoire «junkmail» de l'utilisateur. | |
>DelayToMove=$integer | Déplace les messages du dossier «junkmail» de l'utilisateur au bout de n jours dans le dossier «dir», avant qu'ils ne soient supprimés (typiquement au bout de 90 jours). Utile pour traiter les spams placés ici par le courrielleur du client et non encore appris. Ne peut être activé que si DeleteAfterLearn est activé pour éviter de boucler. Est par défaut à "0" si désactivé. | |
>LearnNew={enabled,junkmail,disabled} | Apprend le contenu du sous-répertoire de lecture IMAP «cur» (si désactivée) ou également «new» (si activée) où les courriels sont stockés avant qu'un client se connecte pour les télécharger. Avec valeur «junkmail», ce comportement sera utilisée uniquement pour l'inspection dossier IMAP junkmail. Par défaut est «désactivée». | |
>Uniq={enabled,disabled} | Si la sous-clé est activée, Learn va rechercher uniquement dans le dossier correspondant au nom indiqué dans la propriété «dir». S'il n'existe pas, il le créera. Si la fonction est désactivée, Learn ne va pas créer un dossier IMAP, mais recherchera tout dossier contenant la chaîne de caractères de la propriété «dir» (par exemple pour dir=dir : mon_dir, dir3, mondir34). Est activée par défaut. | |
LearnAsHam | Clef de configuration pour la partie d'apprentissage des messages comme Ham. | |
>status={enabled,disabled} | Activation ou non de l'apprentissage des Hams. | |
>tag=$string | Tag à mettre devant le message pour avertir l'utilisateur que le message a été traité. | |
>dir=$string | Nom du répertoire ou rechercher les Hams. | |
>LearnNew={enabled,disabled} | Apprend le contenu du sous-répertoire de lecture IMAP «cur» (si désactivée) ou également «new» (si activée) où les courriels sont stockés avant qu'un client se connecte pour les télécharger. Est «désactivée» par défaut. Pas utile ici. | |
>RemoveSPAMTag={enabled,disabled} | Enlève la mauvaise étiquette du sujet du courriel après l'avoir enregistré et replace une copie du message nettoyé dans le répertoire du Courier entrant. Est activée par défaut. | |
>Uniq={enabled,disabled} | Si la sous-clé est activée, Learn va rechercher uniquement dans le dossier correspondant au nom indiqué dans la propriété «dir». S'il n'existe pas, il le créera. Si la fonction est désactivée, Learn ne va pas créer un dossier IMAP, mais recherchera tout dossier contenant la chaîne de caractères de la propriété «dir» (par exemple pour dir=dir : mon_dir, dir3, mondir34). Est activée par défaut. | |
LearnInWL | Clef de configuration pour la partie d'apprentissage de l'expéditeur du message dans la liste blanche. | |
>status={enabled,disabled} | Activation ou non de l'apprentissage des expéditeurs de message dans la liste blanche. | |
>tag=$string | Tag à mettre devant le message pour avertir l'utilisateur que le message a été traité. | |
>dir=$string | Nom du répertoire où rechercher les messages dont les expéditeurs doivent être placés en liste blanche. | |
>LearnNew={enabled,disabled} | Apprend le contenu du sous-répertoire de lecture IMAP «cur» (si désactivée) ou également «new» (si activée) où les courriels sont stockés avant qu'un client se connecte pour les télécharger. Est «désactivée» par défaut. Pas utile ici. | |
>RemoveSPAMTag={enabled,disabled} | Enlève la mauvaise étiquette du sujet du courriel après l'avoir enregistré et replace une copie du message nettoyé dans le répertoire du Courier entrant. Est activée par défaut. | |
>Uniq={enabled,disabled} | Si la sous-clé est activée, Learn va rechercher uniquement dans le dossier correspondant au nom indiqué dans la propriété «dir». S'il n'existe pas, il le créera. Si la fonction est désactivée, Learn ne va pas créer un dossier IMAP, mais recherchera tout dossier contenant la chaîne de caractères de la propriété «dir» (par exemple pour dir=dir : mon_dir, dir3, mondir34). Est activée par défaut. | |
Learn | Clef de configuration pour tout le script. | |
>cron={none,hourly,daily,weekly,monthly} | Effectuer la recherche jamais, toutes les heures, tous les jours, toutes les semaines, tous les mois. | |
>Exclude=user,list,separated,by,coma | Liste des comptes d'utilisateurs qui n'ont pas le droit d'utiliser Learn. Est vide par défaut. "" pour la désactiver. | |
>Include=user,list,separated,by,coma | Liste des comptes d'utilisateurs qui ont le droit d'utiliser Learn. Est prioritaire sur la liste d'exclusion. Si elle n'est pas vide, seuls ces comptes auront accès à Learn. Est vide par défaut. "" pour la désactiver. | |
>Verbose={enabled,disabled,active} | Par défaut, c'est «enabled», c'est à dire qu'un rapport est envoyé par courriel. L'option «active» n'envoie un message que pour les seuls les utilisateurs avec une activité. L'option «disabled» n'envoie pas de rapport. |
Par exemple :
config setprop LearnAsSpam status enabled config setprop LearnInWL status enabled
Pour voir la configuration d'une clé, LearnAsSpam, par exemple :
db configuration show LearnAsSpam
Si la sous-clé Learn>cron est modifiée, le fichier de configuration /etc/cron.d/Learn est modifié et doit être régénéré par la commande :
signal-event email-update
Ou celle-là :
expand-template /etc/cron.d/Learn
Activation de l'auto-apprentissage Bayesien
Vous aurez aussi à activer l'auto-apprentissage Bayésien comme décrit dans la page Email/fr.
Création automatique des répertoires
Ce n'est plus nécessaire si vous activez la sous-clé « Uniq ». Pour mémoire, le script utilisé précédemment est conservé dans l'onglet « discussion » de cette page.
Exemples de configuration
Première stratégie de traitement
Je voudrais avoir mon dossier d'apprentissage en tant sous-répertoire du dossier «junkmail». Mes clients Thunderbird sont configurés pour utiliser le dossier «Junk» pour y mettre ce qu'ils pensent être un pourriel, mais mon client iOS veut utiliser un répertoire dénommé «junkmail» et je ne veux pas contrôler plusieurs dossiers. Mon Serveur SME est configuré pour supprimer les courriels placés dans «junkmail» au bout de 30 jours (config getProp spamassassin MessageRetentionTime). Mais je veux que le contenu du dossier «junkmail» soit utilisé pour apprendre. Je me laisse donc un délai de 15 jours avant la suppression pour trouver des faux positifs et les déplacer dans junkmail.not_a_spam ou pour déplacer les pourriels moi-même dans junkmail.junkmail_learn. Je garde la sous-clé «Uniq» activée pour que le dossier IMAP soit créé automatiquement, même si les utilisateurs les suppriment toujours et encore. Je ne veux pas que les pourriels qui n'ont jamais été téléchargés par un client puissent être utilisés en apprentissage, alors je garde LearnNew à désactivé.
config setprop LearnAsSpam status enabled DeleteAfterLearn enabled DelayToMove 15 SpamLinks Junk dir junkmail.junkmail_learn Uniq enabled
Je veux être en mesure de supprimer l'étiquette SPAM des faux-positifs lorsqu'ils sont déplacés vers junkmail.not_a_spam et les récupérer dans ma boîte de réception sans aucune nouvelle étiquette.
config setprop LearnAsHam status enabled dir junkmail.not_a_spam tag "" RemoveSPAMTag enabled Uniq enabled
Enfin, je veux que mon Serveur SME enregistre les pourriels toutes les heures
config setprop Learn cron hourly signal-event email-update
Deuxième stratégie de traitement
Plus simple : pour la seule clé relative au traitement des pourriels. Dans la messagerie, un nouveau répertoire « Enregistr_pourriels » est créé pour chaque utilisateur dans lequel on va faire transférer les pourriels au bout de n jours. Learn va « apprendre » ces messages puis les détruire. Cela laisse n jours à l'utilisateur pour vérifier que les pourriels qui sont dans le dossier « Pourriels, spams, Indésirables, Junk, ... » selon les messageries, ne sont pas des faux positifs.
Voici cette configuration :
status=enabled dir=Enregistr_pourriels DelayToMove=n DeleteAfterLearn=enabled Uniq=enabled
qui se configure par la commande :
config setprop LearnAsSpam status enabled DeleteAfterLearn enabled DelayToMove n dir Enregistr_pourriels Uniq enabled
Il n'y a rien à faire en dehors de la configuration des sous-clés de cette clé : tout va se faire automatiquement.
Désinstallation
Exécuter seulement :
yum remove smeserver-learn
Source
http://www.sonoracomm.com/index.php?option=com_content&task=view&id=49&Itemid=32
Bogues
S'il vous plait, rapporter les bogues dans la section SME-Contribs du bugzilla et sélectionner le composant smeserver-learn ou utiliser ce lien .
ID | Product | Version | Status | Summary (3 tasks) ⇒ |
---|---|---|---|---|
11831 | SME Contribs | 10.0 | UNCONFIRMED | learn.pl attempts but fails to create default directories for some users. |
9387 | SME Contribs | 8.2 | CONFIRMED | NFR: add script to report reported ham and spam, seen junks and not yet seen junk |
9110 | SME Contribs | 9.2 | CONFIRMED | NFR: rbl-recheck.sh - a script to find recent emails from servers now listed in RBL |
Changelog
Only released version in smecontrib are listed here.
2021/02/23 Jean-Philipe Pialasse 1.0-16.sme
- make use of systemd [SME: 11281]
- create an update event to configure the contrib without reboot [SME: 11281]
- untag ham to avoid client to move them back to spamdir [SME: 10732]
- Remove-deprecated-defined [SME: 11281]
- Initial Import in SME 10 [SME: 11281]
- fix permission problem on bayes_tok [SME: 9446]
- fix verbose disabled unlink /dev/null [SME: 9512]