Ignore:
Timestamp:
Mar 5, 2013, 10:00:19 AM (7 years ago)
Author:
cedric@…
Message:

Certains webmails font un hit sur les liens internes des mails pour detecter les SPAMS :
Imposer une action manuelle sur un bouton sur l'url de desinscription pour éviter que le bot ne désinscrive automatiquement en scannant le lien contenu dans la Newsletter (la desinscription génère ensuite un mail avec un lien pour se réinscrire et sans cela le bot peut faire tourner en boucle infinie inscription/desinscription sinon - cyaltern)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/mailsubscribers/trunk/action/unsubscribe_mailsubscriber.php

    r69533 r70410  
    1414 * @param string $email
    1515 */
    16 function action_unsubscribe_mailsubscriber_dist($email=null){
     16function action_unsubscribe_mailsubscriber_dist($email=null, $double_optin=true){
    1717        include_spip('mailsubscribers_fonctions');
    1818        if (is_null($email)){
     
    2626        }
    2727        else {
     28                $double_optin = false;
    2829                $row = sql_fetsel('id_mailsubscriber,email,jeton,statut','spip_mailsubscribers','email='.sql_quote($email));
    2930        }
     
    3738        changer_langue($row['lang']);
    3839        include_spip("inc/autoriser");
    39         autoriser_exception("modifier","mailsubscriber",$row['id_mailsubscriber']);
    40         autoriser_exception("instituer","mailsubscriber",$row['id_mailsubscriber']);
    4140
    42         if ($row['statut']=='valide'){
    43                 // OK l'email est connu et valide
    44                 include_spip("action/editer_objet");
    45                 objet_modifier("mailsubscriber",$row['id_mailsubscriber'],array('statut'=>'refuse'));
    46                 $titre = _T('mailsubscriber:unsubscribe_texte_email_1',array('email'=>$row['email']));
     41        if (!$row['statut']=='valide'){
     42                $titre = _T('mailsubscriber:unsubscribe_deja_texte',array('email'=>$row['email']));
    4743        }
    4844        else {
    49                 $titre = _T('mailsubscriber:unsubscribe_deja_texte',array('email'=>$row['email']));
     45                if ($double_optin){
     46                        include_spip("inc/filtres");
     47                        $titre = _T('mailsubscriber:unsubscribe_texte_confirmer_email_1',array('email'=>$row['email']));
     48                        $titre .= "<br /><br />".bouton_action(_T('newsletter:bouton_unsubscribe'),generer_action_auteur('confirm_unsubscribe_mailsubscriber',"$email-$arg"));
     49                }
     50                else {
     51                        autoriser_exception("modifier","mailsubscriber",$row['id_mailsubscriber']);
     52                        autoriser_exception("instituer","mailsubscriber",$row['id_mailsubscriber']);
     53                        // OK l'email est connu et valide
     54                        include_spip("action/editer_objet");
     55                        objet_modifier("mailsubscriber",$row['id_mailsubscriber'],array('statut'=>'refuse'));
     56                        $titre = _T('mailsubscriber:unsubscribe_texte_email_1',array('email'=>$row['email']));
     57                        autoriser_exception("modifier","mailsubscriber",$row['id_mailsubscriber'],false);
     58                        autoriser_exception("instituer","mailsubscriber",$row['id_mailsubscriber'],false);
     59                }
    5060        }
    51         autoriser_exception("modifier","mailsubscriber",$row['id_mailsubscriber'],false);
    52         autoriser_exception("instituer","mailsubscriber",$row['id_mailsubscriber'],false);
    53 
    5461
    5562        // Dans tous les cas on finit sur un minipres qui dit si ok ou echec
Note: See TracChangeset for help on using the changeset viewer.