Difference between revisions of "Learn/fr"

From SME Server
Jump to navigationJump to search
 
(63 intermediate revisions by 2 users not shown)
Line 2: Line 2:
  
 
=== Version ===
 
=== Version ===
{{ #smeversion: smeserver-learn}}
+
{{#smeversion: smeserver-learn}}
 
=== Mainteneur ===
 
=== Mainteneur ===
 
[[Unnilennium|JP Pialasse]]
 
[[Unnilennium|JP Pialasse]]
 
=== Contributeurs initiaux===
 
=== Contributeurs initiaux===
 
[mailto:emmanuel.jooris@firewall-services.com Jooris Emmanuel] for [http://www.firewall-services.com Firewall-services],
 
[mailto:emmanuel.jooris@firewall-services.com Jooris Emmanuel] for [http://www.firewall-services.com Firewall-services],
[mailto:daniel@firewall-services.com[[User:VIP-ire|Daniel B.]]] from [http://www.firewall-services.com Firewall Services],
+
[mailto:daniel@firewall-services.com][[User:VIP-ire|Daniel B.]] from [http://www.firewall-services.com Firewall Services],
 
Brian Read , Tim Litwiller , Michael McCarn and Jesper Knudsen
 
Brian Read , Tim Litwiller , Michael McCarn and Jesper Knudsen
  
 
=== Description ===
 
=== Description ===
 
Script (fondé sur LearnAsSpam) qui permet aux utilisateurs d'interagir avec spamassasin simplement
 
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 boite mail (fonctionne uniquement en imap)
+
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 Spam
 
*Apprendre le message en tant que Ham
 
*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.
 
*Ajoute en liste blanche l'expéditeur pour que ses messages ne soient plus reconnus en tant que Spam.
 +
 +
{{warning box|type=Attention :| ce script ne fonctionne que pour des clients de messagerie connectés au Serveur SME uniquement en '''IMAP'''.}}
 +
 +
===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 ===
 
=== Installation ===
Line 21: Line 30:
 
  yum --enablerepo=smecontribs install smeserver-learn
 
  yum --enablerepo=smecontribs install smeserver-learn
  
Activer le filtre Bayesien. Voir le paragraphe [[Email#Bayesian_Autolearning | Bayesian Autolearning]] de la page [[Email]] pour une installation complète. La configuration minimum serait :
+
Activer le filtre Bayesien. Voir le paragraphe [[Email/fr#Autoapprentissage_bay.C3.A9sien | Autoapprentissage Bayésien]] de la page [[Email/fr]] pour une installation complète. La configuration minimum serait (si vous utilisez SME9, vous devez exécuter ceci après l'installation ; avec SME10, ce n'est pas nécessaire : cela est réalisé par le processus d'installation) :
 
  db configuration setprop spamassassin UseBayes 1
 
  db configuration setprop spamassassin UseBayes 1
 
  config setprop spamassassin BayesAutoLearnThresholdSpam 6.00
 
  config setprop spamassassin BayesAutoLearnThresholdSpam 6.00
 
  config setprop spamassassin BayesAutoLearnThresholdNonspam 0.10
 
  config setprop spamassassin BayesAutoLearnThresholdNonspam 0.10
 +
config setprop spamassassin UseBayesAutoLearn 0
 
  expand-template /etc/mail/spamassassin/local.cf
 
  expand-template /etc/mail/spamassassin/local.cf
 
  sa-learn --sync --dbpath /var/spool/spamd/.spamassassin -u spamd
 
  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_*
 
  chown spamd.spamd /var/spool/spamd/.spamassassin/bayes.mutex
 
  chown spamd.spamd /var/spool/spamd/.spamassassin/bayes.mutex
  chmod 640 /var/spool/spamd/.spamassassin/bayes_*  
+
  chmod 640 /var/spool/spamd/.spamassassin/bayes_*
 +
 
 +
{{Warning box| type=Attention : |comme, avec cette contribution, vous essayez de prendre le contrôle des processus d'apprentissage, il est plutôt conseillé de ne pas activer la fonction autolearn. Cela réduira les faux positifs sur votre SME à long terme, mais nécessitera une formation manuelle et une collaboration de la part de vos utilisateurs.
 +
  config setprop spamassassin UseBayesAutoLearn 0
 +
}}
 +
 
 +
Puis nous vous suggérons ces réglages par défaut qui utilisent la sensibilité « moyenne » :
 
  config setprop spamassassin status enabled
 
  config setprop spamassassin status enabled
 
  config setprop spamassassin RejectLevel 12
 
  config setprop spamassassin RejectLevel 12
Line 39: Line 55:
  
 
=== Documentation ===
 
=== Documentation ===
smeserver-learn stocke toutes les clefs dont il a besoin dans la base de données configuration : (le signe > indique une sous-clef)
+
smeserver-learn stocke toutes les clefs dont il a besoin dans la base de données configuration (le signe > indique une sous-clef) :
  
 
{|
 
{|
 
|'''LearnAsSpam'''
 
|'''LearnAsSpam'''
|Clef de configuration pour la partie d'apprentissage des messages comme Spam
+
|Clef de configuration pour la partie d'apprentissage des messages comme spam.
 
|-
 
|-
 
|>status={enabled,disabled}
 
|>status={enabled,disabled}
|Activation ou non de l'apprentissage des Spams
+
|Activation ou non de l'apprentissage des spams.
 
|-
 
|-
 
|>tag=$string
 
|>tag=$string
|Tag à mettre devant le message pour avertir l'utilisateur que le message a été traité.
+
|Tag à mettre devant le message pour avertir l'utilisateur que le message a été appris comme spam.
 
|-
 
|-
 
|>dir=$string
 
|>dir=$string
|Nom du répertoire où rechercher les Spams
+
|Nom du répertoire où l'on place les spams qui seront appris.
 
|-
 
|-
 
|>SpamLinks=$string
 
|>SpamLinks=$string
|Allows to create IMAP fakedfolder linked to junkmail folder. Useful for IOS client thant keep using junk folder and do not allow to set another folder. Multiple Links could be entered separated by comas ",". Default is empty ('') for disabled. More examples follow the table.
+
|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}
 
|>DeleteAfterLearn={enabled,disabled}
|effacer le message après l'avoir appris au lieu de le déplacer dans le répertoire junkmail de l'utilisateur
+
|Effacer le message qui a été appris au lieu de le déplacer dans le répertoire «junkmail» de l'utilisateur.
 
|-
 
|-
 
|>DelayToMove=$integer
 
|>DelayToMove=$integer
|Get the content of the user's junkmail folder before it is deleted. Useful to get SPAM placed here by the mail client software, not yet learnt. Can only be activated if DeleteAfterLearnis enabled to avoid loop. Default ''0'' for disabled.
+
|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}
 
|>LearnNew={enabled,junkmail,disabled}
|Learn content of subdir of the read IMAP folder "cur"(disabled) only or also "new" (enabled- where emails are stored before any client connect to download them). With value junkmail this behaviour will be use only for inspecting junkmail IMAP folder. Default is ''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}
 
|>Uniq={enabled,disabled}
|If enabled, it will search the only corresponding folder named after "dir" property. If it does not exist it will create it. If disabled it will not create any IMAP folder, but will search for all folder containing the content of "dir" property (i.e. *dir* like mon_dir, dir3, mondir34) . Default is ''enabled''.
+
|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'''
 
|'''LearnAsHam'''
|Clef de configuration pour la partie d'apprentissage des messages comme Ham
+
|Clef de configuration pour la partie d'apprentissage des messages comme Ham.
 
|-
 
|-
 
|>status={enabled,disabled}
 
|>status={enabled,disabled}
|Activation ou non de l'apprentissage des Hams
+
|Activation ou non de l'apprentissage des Hams.
 
|-
 
|-
 
|>tag=$string
 
|>tag=$string
|Tag à mettre devant le message pour avertir l'utilisateur que le message a été traité
+
|Tag à mettre devant le message pour avertir l'utilisateur que le message a été traité.
 
|-
 
|-
 
|>dir=$string
 
|>dir=$string
|Nom du répertoire ou rechercher les Hams
+
|Nom du répertoire où déposer les Hams issus du dossier « Indésirables » pour qu'ils soient traités par Learn.
 
|-
 
|-
 
|>LearnNew={enabled,disabled}
 
|>LearnNew={enabled,disabled}
|Learn content of subdir of the read IMAP folder "cur"(disabled) only or also "new" (enabled- where emails are stored before any client connect to download them)  . Default is ''disabled''. Not useful here.
+
|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}
 
|>RemoveSPAMTag={enabled,disabled}
|Remove bad [SPAM] tag from subject after learning and before putting the copy of cleaned the message back in your INBOX. Default is ''enabled''.
+
|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}
 
|>Uniq={enabled,disabled}
|If enabled, it will search the only corresponding folder named after "dir" property. If it does not exist it will create it. If disabled it will not create any IMAP folder, but will search for all folder containing the content of "dir" property (i.e. *dir* like mon_dir, dir3, mondir34) . Default is ''enabled''.
+
|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'''
 
|'''LearnInWL'''
|Clef de configuration pour la partie d'apprentissage de l'expéditeur du message dans la liste blanche
+
|Clef de configuration pour la partie d'apprentissage de l'expéditeur du message dans la liste blanche.
 
|-
 
|-
 
|>status={enabled,disabled}
 
|>status={enabled,disabled}
|Activation ou non de l'apprentissage des expéditeurs de message dans la liste blanche
+
|Activation ou non de l'apprentissage des expéditeurs de message dans la liste blanche.
 
|-
 
|-
 
|>tag=$string
 
|>tag=$string
|Tag à mettre devant le message pour avertir l'utilisateur que le message a été traité
+
|Tag à mettre devant le message pour avertir l'utilisateur que le message a été traité.
 
|-
 
|-
 
|>dir=$string
 
|>dir=$string
Line 106: Line 121:
 
|-
 
|-
 
|>LearnNew={enabled,disabled}
 
|>LearnNew={enabled,disabled}
|Learn content of subdir of the read IMAP folder "cur"(disabled) only or also "new" (enabled- where emails are stored before any client connect to download them)  . Default is ''disabled''. Not useful.
+
|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}
 
|>RemoveSPAMTag={enabled,disabled}
|Remove bad [SPAM] tag from subject after learning and before putting the copy of cleaned the message back in your INBOX. Default is ''enabled''.
+
|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}
 
|>Uniq={enabled,disabled}
|If enabled, it will search the only corresponding folder named after "dir" property. If it does not exist it will create it. If disabled it will not create any IMAP folder, but will search for all folder containing the content of "dir" property (i.e. *dir* like mon_dir, dir3, mondir34) . Default is ''enabled''.
+
|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.
 
|-
 
|-
 
|
 
|
Line 118: Line 133:
 
|-
 
|-
 
|'''Learn'''
 
|'''Learn'''
|Clef de configuration pour le script généralement
+
|Clef de configuration pour tout le script.
 
|-
 
|-
 
|>cron={none,hourly,daily,weekly,monthly}
 
|>cron={none,hourly,daily,weekly,monthly}
Line 124: Line 139:
 
|-
 
|-
 
|>Exclude=user,list,separated,by,coma
 
|>Exclude=user,list,separated,by,coma
|List of users without the right to use Learn. Default is empty ''""'' for disabled.
+
|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
 
|>Include=user,list,separated,by,coma
|List of user who has the right to use Learn. Override Exclude list. If not empty, only these users will have access to Learn. Default is empty ''""'' for disabled.
+
|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.
 
|}
 
|}
  
Line 134: Line 152:
 
   config setprop LearnInWL status enabled
 
   config setprop LearnInWL status enabled
  
Pour voir la configuration de la clé LearnAsSpam, par exemple :
+
Pour voir la configuration d'une clé, LearnAsSpam, par exemple :
 
   db configuration show LearnAsSpam
 
   db configuration show LearnAsSpam
  
Un fichier de configuration est modifié, /etc/crontab , qui doit être régénéré si la sous-clé Learn>cron est modifiée.
+
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 ===
 
=== Activation de l'auto-apprentissage Bayesien ===
Vous aurez aussi à activer [[Email#Setup_Blacklists_.26_Bayesian_Autolearning | l'auto-apprentissage Bayesian]] comme décrit dans la page [[Email]].
+
Vous aurez aussi à activer [[Email/fr#Autoapprentissage_bay.C3.A9sien | 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
  
=== Creation automatique des répertoires ===
+
qui se configure par la commande :
Un script, posté dans le forum par Cactus et rapporté par Amir Inbar peut-etre utilisé pour créer tous les repertoires nécessaires (autant pour les nouveaux utilisateurs que pour ceux qui existent déjà) :
+
config setprop LearnAsSpam status enabled DeleteAfterLearn enabled DelayToMove n dir Enregistr_pourriels Uniq enabled
  
# create skellaton for new users :
+
Il n'y a rien à faire en dehors de la configuration des sous-clés de cette clé : tout va se faire automatiquement.
 
mkdir -p
 
/etc/e-smith/skel/user/Maildir/{.LearnAsHam/{cur,new,tmp},.LearnAsSpam/{cur,new,tmp},.LearnInWL/{cur,new,tmp}}
 
 
# create folders for exsisting users :
 
 
pushd /home/e-smith/files/users/; \
 
for u in `ls | grep -v admin`; \
 
do \
 
mkdir -p $u/Maildir/.LearnAsHam/{cur,new,tmp}; \
 
chown -R $u:$u $u/Maildir/.LearnAsHam/; \
 
mkdir -p $u/Maildir/.LearnAsSpam/{cur,new,tmp}; \
 
chown -R $u:$u $u/Maildir/.LearnAsSpam/; \
 
mkdir -p $u/Maildir/.LearnInWL/{cur,new,tmp}; \
 
chown -R $u:$u $u/Maildir/.LearnInWL/; \
 
done; \
 
popd
 
  
Merci à eux.
+
{{Tip box|type=Astuce :|pour le courrielleur Thunderbird, le dossier des pourriels est « .Junk ». Donc ne pas oublier de rajouter dans la configuration de LearnAsSpam la sous-clé « SpamLinks » égale à « .Junk » pour créer un lien.}}
  
 
=== Désinstallation ===
 
=== Désinstallation ===
Line 171: Line 206:
  
 
=== Source ===
 
=== Source ===
Les rpm sources pour cette contrib sont présents [http://sme.firewall-services.com/downloads/learn/srpms/ ici].
 
  
=== Bugs ===
+
http://www.sonoracomm.com/index.php?option=com_content&task=view&id=49&Itemid=32
S'il vous plait, rapporter les bugs dans la section SME-Contribs du [http://bugs.contribs.org/enter_bug.cgi bugzilla] et sélectionner le composant smeserver-learn ou utiliser {{BugzillaFileBug|product=SME%20Contribs|component=smeserver-learn|title=ce lien}}.  
+
 
 +
=== Bogues ===
 +
S'il vous plait, rapporter les bogues dans la section SME-Contribs du [http://bugs.contribs.org/enter_bug.cgi bugzilla] et sélectionner le composant smeserver-learn ou utiliser {{BugzillaFileBug|product=SME%20Contribs|component=smeserver-learn|title=ce lien}}.
 +
{{#bugzilla:columns=id,product,version,status,summary |sort=id |order=desc |component=smeserver-learn|noresultsmessage="No open bugs found."}}
 +
<noinclude>
 +
[[Category: Contrib/fr]]
 +
</noinclude>
 +
<noinclude>
 +
[[Category: Mail/fr]]
 +
</noinclude>
 +
 
 +
===Journal des modifications===
 +
Seules les versions publiées dans smecontribs sont répertoriées ici.
  
{{Note box|Le composant n'a pas encore été créé, soyez patient s'il vous plait.}}  
+
{{#smechangelog: smeserver-learn}}
<noinclude>[[Category: Contrib/fr]]</noinclude>
+
<noinclude>
<noinclude>[[Category: Mail/fr]]</noinclude>
+
[[Category: Contrib/fr]]
 +
</noinclude>
 +
<noinclude>
 +
[[Category: Mail/fr]]
 +
</noinclude>
 +
<noinclude>
 +
[[Category: Administration:Content Spam Virus Blocking]]
 +
</noinclude>

Latest revision as of 16:32, 22 September 2022


Version

Contrib 10:
Contrib 9:
smeserver-learn
The latest version of smeserver-learn is available in the SME repository, click on the version number(s) for more information.


Mainteneur

JP Pialasse

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.


Warning.png Attention :
ce script ne fonctionne que pour des clients de messagerie connectés au Serveur SME uniquement en IMAP.


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 (si vous utilisez SME9, vous devez exécuter ceci après l'installation ; avec SME10, ce n'est pas nécessaire : cela est réalisé par le processus d'installation) :

db configuration setprop spamassassin UseBayes 1
config setprop spamassassin BayesAutoLearnThresholdSpam 6.00
config setprop spamassassin BayesAutoLearnThresholdNonspam 0.10
config setprop spamassassin UseBayesAutoLearn 0
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_*


Warning.png Attention :
comme, avec cette contribution, vous essayez de prendre le contrôle des processus d'apprentissage, il est plutôt conseillé de ne pas activer la fonction autolearn. Cela réduira les faux positifs sur votre SME à long terme, mais nécessitera une formation manuelle et une collaboration de la part de vos utilisateurs.
  config setprop spamassassin UseBayesAutoLearn 0


Puis nous vous suggérons ces réglages par défaut qui utilisent la sensibilité « moyenne » :

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 où déposer les Hams issus du dossier « Indésirables » pour qu'ils soient traités par Learn.
>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.


Information.png Astuce :
pour le courrielleur Thunderbird, le dossier des pourriels est « .Junk ». Donc ne pas oublier de rajouter dans la configuration de LearnAsSpam la sous-clé « SpamLinks » égale à « .Junk » pour créer un lien.


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 .

IDProductVersionStatusSummary (3 tasks)
11831SME Contribs10.0UNCONFIRMEDlearn.pl attempts but fails to create default directories for some users.
9387SME Contribs8.2CONFIRMEDNFR: add script to report reported ham and spam, seen junks and not yet seen junk
9110SME Contribs9.2CONFIRMEDNFR: rbl-recheck.sh - a script to find recent emails from servers now listed in RBL


Journal des modifications

Seules les versions publiées dans smecontribs sont répertoriées ici.

smeserver-learn Changelog: SME 10 (smecontribs)

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]

- move existing spamdir before creating link to replace them [SME: 9524]
2020/12/31 Brian Read 1.0-15.sme
- Remove-deprecated-defined [SME: 11281]
2020/12/20 Brian Read 1.0-14.sme
- Initial Import in SME 10 [SME: 11281]
2016/07/29 Jean-Philipe Pialasse 1.0-13.sme
- fix permission problem on bayes_tok [SME: 9446]
2016/05/14 Jean-Philipe Pialasse 1.0-12.sme
- fix verbose disabled unlink /dev/null [SME: 9512]