Accéder au contenu.
Menu Sympa

fr - Re: [sympa-fr] Désabonnement automatique des abonnés en erreur - ne fonctionne pas

Objet : Pour les administrateurs de serveurs de listes utilisant le logiciel Sympa

Archives de la liste

Chronologique Discussions  
  • From: Carine Lavalette <adresse@cachée>
  • To: sympa-fr <adresse@cachée>
  • Subject: Re: [sympa-fr] Désabonnement automatique des abonnés en erreur - ne fonctionne pas
  • Date: Mon, 24 Jun 2019 16:46:36 +0200 (CEST)

Merci David pour ces explications.
Je n'avais pas dans mon fichier sympa.conf, les paramètres
  • minimum_bouncing_count 
  • minimum_bouncing_period
Je suis en version Sympa 6.2.24, je viens de les ajouter et ajuster.
Suite demain.
Bonne fin de journée

De: "david verdin" <adresse@cachée>
À: "sympa-fr" <adresse@cachée>
Envoyé: Lundi 24 Juin 2019 15:58:27
Objet: Re: [sympa-fr] Désabonnement automatique des abonnés en erreur - ne fonctionne pas

Bonjour  à tous,

Je pense que c'est le moment idéal pour une petite piqûre de rappel sur la gestion des erreurs dans Sympa. :-)

Carine cite trois paramètres de configuration :

  • "Seuil d'alerte" qui, dans le fichier de configuration, porte le nom "bounce -> warn_rate".
  • "Level 1" , connu sous le nom "bouncers_level1"
  • "Level 2" ou "bouncers_level2".

J'ai écrit "bounce -> warn_rate", parce que "warn_rate est un sous paragraphe de "bounce". Sa valeur est un nombre de pourcents; Pour avoir "60 %", on donne la valeur "60" au seuil d'alerte. Il apparaît ainsi dans une config de liste :

bounce
warn_rate 60

Il y aavait aussi un second seuil qui désactivaiut l'envoi de messages passé un certain seuil d'erreur : "bounce -> halt_rate". Il apparaissait ainsi :

bounce
halt_rate 80
Ce paramètre a disparu dans les versions récentes de Sympa. Sans doute pour éviter des pertes de messages.

Les paramètres "bouncers_level1" et "bouncers_level2" sont aussi des paragraphes de configuration, dotés de trois sous-paramètres :

  • "rate",
  • "notification",
  • "action"

Par exemple, le paragraphe "bouncers_level1" cité par Carine est noté de la manière suivante dans la configuration :

bouncers_level1   
rate 1 
notification owner
action none                                                                                                                                                                                                                                   

"bouncers_level2" a strictement la même structure.

La nuance à prendre en compte est que "rate", dans un paragraphe "bouncers_level1" est un nombre de points et que, par ailleurs, les valeurs de "warn_rate" et "halt_rate" dans un paragraphe "bounce" est un nombre de pourcents.

Ils ne désignent pas la même chose.

Paramètre bounce

Pour "warn_rate", il s'agit du pourcentage d'utilisateurs par rapport au nombre total d'abonnés qui sont actuellement comptés en erreur, quelles que soient le nombre et le type d'erreurs. Si un utilisateur a eu ne serait-ce qu'une erreur temporaire, il fera partie du nombre.

Dès que le taux d'erreurs de la liste atteint cette valeur, on applique un action invariable :

  • si le taux d'erreur dépasse "warn_rate", un mail est envoyé aux propriétaires de la liste à chaque fois qu'un mail est est diffusé pour cette liste. C'est du harcèlement pour forcer les propriétaires à faire du ménage.

Ce seuil n'entraîne pas de désabonnements.

Paramètres bouncers_level1 et bouncers_level2

Pour le sous paragraphe "rate" de "bouncers_level1", le nombre représente le nombre de points qu'a cumulés un utilisateur. Que signifient ces points ?

À partir d'un certain nombre d'erreurs reçues (je détaille ce calcul plus bas), on commence à calculer une note d'erreur. Voici comment :

  1. on compte le nombre total d'erreurs de l'utilisateur : total_bounce
  2. on calcule le rapport <nombre de bounces reçus>/<nombre de messages envoyés pendant la même période> : regularity
  3. on note la gravité du dernier bounce reçu (error_type) :
  • 0,5 pour chaque erreur temporaire (code 4xx),
  • 1 pour chaque erreur définitive (5xx).

La note d'erreur vaut finalement : total_bounce * regularity * error_type (on arrondit à l'entier supérieur)

Exemple : sur une période d'une semaine, 10 messages ont été envoyés à la liste. Sur ces dix messages , un utilisateur a généré 3 bounces. Le dernier était une erreur temporaire.

On a donc :

  • total_bounce = 3
  • regularity = 3/10 = 0,3
  • error_type = 0,5

Sa note d'erreur serait donc de : 3 * 0,3 * 0,5 = 0,45, arrondit à 1.

À partir de ce moment, on évalue périodiquement les utilisateurs en erreur, une fois par jour, par défaut. Si la note de l'utilisateur atteint un seuil défini par le sous-paramètre "rate", on fait deux choses :

  • on envoie une notification à la cible désignée par le sous-paramètre "notification" :
  • le listmaster s'il vaut "listmaster",
  • les propriétaires, s'il vaut "owner",
  • personne, s'il vaut "none" (pas de notification)
on effectue une action définie par le sous-paramètre "action" :
  • désabonner les utilisateurs s'il vaut "remove_bouncers",
  • envoyer une notification aux utilisateurs s'il vaut "notify_bouncers",
  • pas de notification s'il vaut "none".

Il est important de noter que tout utilisateur en erreur n'a pas nécessairement de note.

On ne commence à calculer une erreur pour un utilisateur que si on a reçu :

  • un nombre d'erreurs pour cet utilisateur supérieur ou égal au paramètre global minimum_bouncing_count,
  • La période de temps courant (en jours) entre le premier et le dernier bounce reçu est inférieure à la valeur du paramètre minimum_bouncing_period.

Exemple : Soit un serveur de liste avec ls paramètres suivant dans sympa.conf :

  • minimum_bouncing_count : 3
  • minimum_bouncing_period: 5

On ne commencera à calculer une note d'erreur que si un utilisateur a généré au moins 3 erreurs sur les 5 derniers jours. On ne commencera pas s'il a généré 3 erreurs sur 6 jours ou 2 erreurs sur 4 jours.

En revanche, dès lors qu'on a commencé à calculer la note, on n'arrête plus, sauf si l'adresse email cesse définitivement de générer des erreurs pendant une période de temps, mesurée en jours, supérieure ou égale à 10 jours.


Voilà.

C'est comme ça que ça marche...

Pour en revenir à ta question, Carine, tu comprends que le seuil d'alerte n'a rien à vois avec le désabonnement.

Et si on relit tes paragraphes, on voit que l'action pour le premier niveau de bounces est "ne rien faire". et que celle pour le second niveau est "désabonner". Par conséquent, comme le seuil est de 80 sur ce second niveau, tu ne désabonnera que les utilisateurs dont la note dépasse 80 points. Ce qui peut prendre trèèèèèès longtemps.


Voilà, j'espère que ce mail vous aidera.

Bonne journée !

David

On 21/06/2019 17:06, Carine Lavalette wrote:
adresse@cachée">
Bonjour, je rencontre un soucis avec le " désabonnement automatique des abonnés en erreur ".
je m'explique : j'ai un taux d'erreurs de 80% sur une liste X. Ces abonnés en erreur ont pour certains le statut " 5.0.0 " et pour d'autres " 5.1.1 " sur une période de 14j (avec 21 erreurs pour une des adresses plus précisément).
Je n'obtiens pas le fonctionnement attendu, à savoir que ces adresses d'abonnés en erreur soient automatiquement radiées/désabonnées de la liste au bout de 3 " constats d'erreur " (statut 5.x.x).

Ma conf est la suivant :
  • Seuil d'alerte : 60 %
  • Level 1 :
    • seuil : 1 point
    • action : ne rien faire
    • notification : propriétaire
  • Level 2 :
    • seuil : 80 points
    • action : désabonner les utilisateurs en erreur
    • notification : propriétaire
Les fonctionnalités pour le " seuil d'alerte à 60% " et le " Level 1 " semblent fonctionner mais pas pour le Level 2. Y-a-t'il un paramètre à configurer dans le fichier 'sympa.conf' ? Une période plus courte à définir quelque part ? Un script à lancer ?
Je vous remercie par avance pour votre aide.

Cordialement.

--
Carine LAVALETTE
-- 
"Mieux vaut viser la perfection et la rater que viser la médiocrité et l'atteindre."
- Francis Blanche




Archives gérées par MHonArc 2.6.19+.

Haut de le page