Changeset 109686 in spip-zone for _plugins_/mailshot/trunk


Ignore:
Timestamp:
Mar 26, 2018, 10:44:16 AM (7 months ago)
Author:
cedric@…
Message:

Fix : ne pas perdre tous les abonnements a une liste quand c'est le prestataire qui a bloque le compte - on verifie que l'envoi a reussi au moins une fois avant de compter les fils et de desabonner un subscriber

Location:
_plugins_/mailshot/trunk
Files:
2 edited

Legend:

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

    r108049 r109686  
    226226/**
    227227 * Verifier un email en fail et si plus de N fails consecutifs le desabonner (email foireux)
     228 * (MAIS ignorer les envois qui n'ont que des fails car c'est un blocage du compte du prestataire d'envoi)
    228229 * @param $email
    229230 */
    230231function mailshot_verifier_email_fail($email) {
     232        static $mailshot_valides = array();
     233
    231234        if (_MAILSHOT_DESABONNER_FAILED != false) {
    232235                if (!defined('_MAILSHOT_MAX_FAIL')) {
     
    235238
    236239                $historique = sql_allfetsel(
    237                         'date, statut, try',
     240                        'id_mailshot, date, statut, try',
    238241                        'spip_mailshots_destinataires',
    239242                        'statut!=' . sql_quote('todo') . ' AND email=' . sql_quote($email),
     
    246249                foreach ($historique as $h) {
    247250                        if ($h['statut'] == 'fail' AND $h['try'] > 1) {
    248                                 $nb_failed++;
     251                                // on ne compte le fail que si l'envoi a reussi au moins une fois
     252                                // pour ne pas perdre tous les abonnes quand le service d'envoi bloque le compte
     253                                if (!isset($mailshot_valides[$h['id_mailshot']])) {
     254                                        $mailshot_valides[$h['id_mailshot']] = sql_getfetsel('id_mailshot', 'spip_mailshots_destinataires', sql_in('statut', array('todo','fail'),'NOT').' AND id_mailshot='.intval($h['id_mailshot']),'','','0,1');
     255                                }
     256                                if ($mailshot_valides[$h['id_mailshot']]) {
     257                                        $nb_failed++;
     258                                }
    249259                        }
    250260                }
  • _plugins_/mailshot/trunk/paquet.xml

    r109358 r109686  
    22        prefix="mailshot"
    33        categorie="communication"
    4         version="1.22.6"
     4        version="1.23.0"
    55        etat="stable"
    66        compatibilite="[3.0.5;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.