Changeset 102612 in spip-zone


Ignore:
Timestamp:
Feb 3, 2017, 2:48:26 PM (2 years ago)
Author:
ben.spip@…
Message:

Introduction de deux constantes _MAILSHOT_MAX_FAIL et _MAILSHOT_DESABONNER_FAILED. La constante _MAILSHOT_MAX_FAIL permet de definir le seuil après lequel la personne est désabonnée si l'envoi echoue. La constante _MAILSHOT_DESABONNER_FAILED positionnée à true permet de ne jamais désabonner une personne suite à un probleme d'envoi : le cas d'usage est de suivre manuellement la validité des emails d'une liste

Location:
_plugins_/mailshot/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/mailshot/trunk/inc/mailshot.php

    r100314 r102612  
    223223}
    224224
     225
    225226/**
    226227 * Verifier un email en fail et si plus de N fails consecutifs le desabonner (email foireux)
    227228 * @param $email
    228229 */
    229 function mailshot_verifier_email_fail($email){
    230         $nb_check = 3;
    231         $historique = sql_allfetsel('date, statut, try','spip_mailshots_destinataires','statut!='.sql_quote('todo').' AND email='.sql_quote($email),'','date DESC',"0,$nb_check");
    232         $nb_failed = 0;
    233         foreach($historique as $h){
    234                 if ($h['statut']=='fail' AND $h['try']>1){
    235                         $nb_failed++;
    236                 }
    237         }
    238         if ($nb_failed==$nb_check){
    239                 $unsubscribe = charger_fonction("unsubscribe","newsletter");
    240                 $unsubscribe($email,array('notify'=>false));
    241         }
    242 }
    243 
     230function mailshot_verifier_email_fail($email)
     231{
     232    if (_MAILSHOT_DESABONNER_FAILED != false) {
     233        if (!defined('_MAILSHOT_MAX_FAIL'))
     234            define('_MAILSHOT_MAX_FAIL', 3);
     235
     236        $historique = sql_allfetsel('date, statut, try', 'spip_mailshots_destinataires', 'statut!=' . sql_quote('todo') . ' AND email=' . sql_quote($email), '', 'date DESC', "0,$nb_check");
     237        $nb_failed = 0;
     238        foreach ($historique as $h) {
     239            if ($h['statut'] == 'fail' AND $h['try'] > 1) {
     240                $nb_failed++;
     241            }
     242        }
     243        if ($nb_failed >= _MAILSHOT_MAX_FAIL) {
     244            $unsubscribe = charger_fonction("unsubscribe", "newsletter");
     245            $unsubscribe($email, array('notify' => false));
     246        }
     247    }
     248}
    244249/**
    245250 * Initialiser les destinataires d'un envoi
  • _plugins_/mailshot/trunk/mailshot_options.php

    r96776 r102612  
    77
    88if (!defined('_ECRIRE_INC_VERSION')) return;
     9if (!defined('_MAILSHOT_DESABONNER_FAILED')) define('_MAILSHOT_DESABONNER_FAILED',true) ;
    910
    10 
  • _plugins_/mailshot/trunk/newsletter/feedback.php

    r98579 r102612  
    4444        $set = array();
    4545        $desabonner = false;
    46         // $row['statut'] in todo, sent, fail, [read, [clic]],[spam]
     46
     47    // $row['statut'] in todo, sent, fail, [read, [clic]],[spam]
    4748        // ok on a tout ce qu'il faut, avisons
    4849        switch($quoi){
     
    5859                        if (in_array($row['statut'],array('todo','sent','fail','read'))) {
    5960                                $set['statut'] = 'spam';
    60                                 $desabonner = true;
     61                                $desabonner = _MAILSHOT_DESABONNER_FAILED;
    6162                        }
    6263                        break;
     
    6566                        if (in_array($row['statut'],array('todo','sent','fail'))){
    6667                                $set['statut'] = 'fail';
    67                                 $desabonner = true;
     68                                $desabonner = _MAILSHOT_DESABONNER_FAILED;
    6869                        }
    6970                        break;
  • _plugins_/mailshot/trunk/paquet.xml

    r101386 r102612  
    22        prefix="mailshot"
    33        categorie="communication"
    4         version="1.21.2"
     4        version="1.21.3"
    55        etat="stable"
    66        compatibilite="[3.0.5;3.1.*]"
Note: See TracChangeset for help on using the changeset viewer.