Mailsubscribers

Ce plugin permet de gérer les inscriptions (ou abonnements) à la diffusion de contenu par email.

Mailsubscribers permet de gérer les inscriptions par Opt-in simple ou double et la désinscription par URL. Ce plugin gère également plusieurs listes de diffusion (simplifiées) permettant de cibler des listes d’inscrits au cas par cas dans les envois en nombre par courrier électronique.

Pour les développeurs, ce plugin implémente la partie subscribe de l’API Newsletter et peut donc être utilisé avec les plugins Newsletters et Mailshot pour l’envoi de Newsletters.

Installation

Le plugin s’installe classiquement, et ne nécessite pas d’autre plugin pour fonctionner. Cependant, si vous souhaitez importer et exporter des listes d’abonnés au format CSV, vous devrez installer le plugin complémentaire SPIP Bonux.

Configuration

Vous pouvez configurer ce plugin pour l’adapter à vos besoins.

Opt-in

Vous pouvez choisir le fonctionnement en simple Opt-in ou double Opt-in :

  • en simple opt-in : il suffit pour s’inscrire que la personne renseigne son email dans un formulaire d’inscription explicitement dédié à l’envoi d’informations par mail, ou qu’il coche une case « je veux m’inscrire à la Newsletter » dans un autre formulaire (inscription comme redacteur dans le site par exemple) ;
  • en double opt-in : l’inscription est mise en attente suite à cette première étape, et un email est envoyé sur l’adresse courriel renseignée, demandant de cliquer sur un lien pour confirmer l’inscription. Il y a donc une étape de vérification.

Le mode double opt-in permet d’avoir une base d’inscrits de meilleure qualité. Il évite les inscriptions forcées, pour le compte d’autrui, ainsi que d’inscrire une adresse email erronée (faute de frappe). Ce mode est nécessaire dans certain pays pour être en accord avec la loi. En France le simple opt-in suffit, mais il est recommandé d’utiliser le double opt-in.

Inscription à la Newsletter lors de l’inscription au site

Si vous activez cette option, une case à cocher sera automatiquement ajoutée sur le formulaire d’inscription au site pour permettre l’inscription à la Newsletter en même temps.

Listes de diffusion

Pour chaque liste, indiquez un identifiant (lettres et chiffres uniquement) ainsi qu’un libellé explicite. Vous pouvez a posteriori fermer une liste : dans ce cas il n’est plus possible de s’y inscrire, mais vous conservez tout de même la liste des inscrits en base de donnée.

Par défaut, il n’y a qu’une liste de diffusion disponible, avec l’identifiant newsletter.

Listes de diffusion automatiques

Il est possible d’avoir des listes de diffusion dont les abonnés sont automatiquement synchronisées avec d’autres tables ou même d’autres bases [1]. Le plugin permet par exemple de créer les listes automatiques des Administrateurs, des Rédacteurs et des Visiteurs du site.

Si vous cochez la liste des Administrateurs en Enregistrez, elle apparaîtra avec une mention précisant que cette liste est synchronisée automatiquement. Si vous rafraichissez la page quelque minutes plus tard (ce n’est pas immédiat car la synchronisation est faite en tache de fond), le nombre d’abonnés apparaitra.

Vous pouvez aussi définir votre propre liste automatique synchronisée. Pour cela, créez la liste avec un identifiant et un nom qui vous conviennent, puis ajoutez dans votre fichier mes_fonctions.php la fonction mailsubscribers_synchro_list_newsletter_xxx() que vous aurez créé (en remplaçant xxx par l’identifiant de votre liste).
Cette fonction devra retourner un tableau d’abonnés, chacun étant décrit par un tableau avec
-  l’entrée obligatoire email
-  les entrées facultatives nom et prenom.

Ces données peuvent venir aussi bien d’une table SQL, d’un fichier texte, CSV, d’une autre base de donnée…

Le plugin synchronisera alors automatiquement 1 fois par jour les abonnés avec la liste fournie par votre fonction, et vous pourrez envoyer des Infolettres sur ces listes toujours à jour.

Inscription-désinscription sur le site public

Le plugin ne propose par défaut aucune page d’inscription pour le site public. Vous devez ajouter le formulaire d’inscription et désinscription dans votre squelette.

Formulaire d’inscription

Vous pouvez insérer simplement le formulaire d’inscription dans votre squelette avec la balise #FORMULAIRE_NEWSLETTER_SUBSCRIBE. L’inscription se fera sur la liste par défaut newsletter.

Le formulaire est volontairement le plus simple possible se limitant à un label et un champ de saisie (automatiquement rempli par l’adresse email du visiteur si identifié). Cela vous permet d’ajouter un titre à votre guise. Vous pouvez modifier le libellé du bouton en personnalisant la chaine de langue bouton_subscribe.

Pour proposer l’inscription sur une autre liste ou plusieurs listes, indiquez l’identifiant de la ou les listes en argument de la balise, séparés par une virgule. Les paramètres à passer doivent être entre guillemets. Par exemple :

#FORMULAIRE_NEWSLETTER_SUBSCRIBE{
    "newsletter,nouveautes",
    "checklist" }

Lors de son inscription, l’internaute reçoit un email d’information (ou de confirmation si double opt-in).

Comme pour tous les formulaires, il est possible d’insérer le formulaire d’inscription à l’intérieur du texte d’un article, plutôt que dans un squelette, au moyen de l’appel de modèle suivant :
<formulaire|newsletter_subscribe|listes=liste1| ... >

Formulaire de désinscription

Comme pour le formulaire d’inscription, le formulaire de désinscription s’insère avec #FORMULAIRE_NEWSLETTER_UNSUBSCRIBE. Vous pouvez indiquer la ou les listes concernées en argument : #FORMULAIRE_NEWSLETTER_UNSUBSCRIBE{"newsletter,nouveautes"}

Vous pouvez modifier le libellé du bouton en personalisant la chaine de langue bouton_unsubscribe.

Lors de sa désinscription, l’internaute reçoit un email d’information. Si il n’est plus abonné à aucune liste, son adresse email est obfusquée, transformée en md5 de son email avec le domaine @example.org. Cela permet de préserver l’anonymat des désinscrit, mais de les garder en base pour éviter de les réinscrire par erreur en cas d’import d’adresses par exemple.

Administration des inscrits

Liste des inscrits

La liste des inscrits est disponible dans l’espace privé, depuis le menu Activité > Inscrits aux envois par email

Inscription

Vous pouvez inscrire une adresse email manuellement depuis l’espace privé en sélectionnant « Ajouter une inscription ».

Vous devrez renseigner a minima l’adresse email et une liste de diffusion. L’inscrit sera par défaut « pas inscrit » et vous devrez modifier son statut pour l’inscrire réellement.
Lorsque vous modifiez le statut par ce formulaire d’édition, aucun courriel de notification n’est envoyé à l’adresse email concernée.

En revanche, dans tous les autres cas l’inscrit recevra automatiquement sur son adresse courriel un email de vérification quand vous lui mettez le statut « à confirmer », et un email d’information si vous lui mettez le statut « abonné ». De même si vous le passez ensuite en « désabonné » un email d’information sera à nouveau envoyé. C’est par exemple le cas quand vous modifiez le statut de l’inscrit par le formulaire de changement dédié à cet effet :

Export des inscrits [2]

Vous pouvez télécharger la liste des inscrits ou de toutes les adresses (y compris les inscrits en attente ou les désinscrits [3]) au format CSV. Chaque colonne correspond à un champ de la table.

Import des inscrits [4]

Vous pouvez importer une liste d’adresse mail à inscrire. Un fichier CSV est attendu, avec en première ligne le nom des champs, selon le même format que celui fournit en export. Si le fichier ne comporte qu’une seule colonne, il sera supposé que ce sont des emails. Cela vous permet d’importer des fichiers textes avec une adresse email par ligne comme les fichiers d’export générés par SPIP-Listes.

Si votre fichier d’import contient une colonne statut, les adresses prendront automatiquement le statut fixé par le fichier. Un email de confirmation ou d’information sera envoyé à chaque adresse importée (sauf si vous cochez l’option pour ne pas notifier lors de l’import).

Si votre fichier d’import ne contient pas de colonne statut, les adresses seront automatiquement inscrites (directement ou via un mail de confirmation selon le réglage de votre opt-in). Cependant, les adresses emails correspondant à des personnes désinscrites ne seront pas ré-inscrites.

Après sélection d’un fichier, le formulaire vous montre une prévisualisation de l’interprétation des données sur les premières lignes du fichier, et vous pouvez lancer l’import si cela vous convient. A cette étape, vous pouvez préciser que cet import doit se faire sans notification des inscrits [5], ou aussi que vous voulez vider la table avant l’import (cas de la mise à jour complète de votre base par un fichier CSV). Cette dernière option ne vous est proposée que si vous êtes webmestre.

Traçabilité des inscriptions

À chaque fois qu’une adresse email est inscrite ou désinscrite, cela provoque l’enregistrement d’une trace dans le champ optin de l’adresse email correspondante. La trace sera enregistrée que l’inscription se fasse sur le site public, ou par un administrateur dans le back-office, ou même par un import de fichier.

La trace contient la date et l’heure de la modification ainsi que les éléments d’identification de la personne qui a réalisé l’action (adresse IP si la personne n’est pas identifiée, ou id_auteur et nom de l’administrateur SPIP).

Le champ optin qui garde cette trace n’est pas éditable, et peut donc être opposé comme justificatif si une personne manifeste sa désapprobation d’avoir été inscrite à son insu (à tort ou à raison).

Newsletter : confirmation d’inscription / reconsentement

Il est possible d’envoyer un message aux abonnées n’ayant pas ouvert un seul mail depuis 1 an afin de leur demander de confirmer explicitement leur inscription et ainsi éviter de continuer à envoyer des newsletters à des gens qui ne les ouvrent pas.

Cela s’appuie sur les statistiques des prestataires d’envois des mails ; cela ne fonctionnera donc pas avec un envoi via SMTP, qui n’obtient pas ces informations.

Envoyer le mail

Dans le menu Activité > Listes de diffusion, cliquer sur « Accéder à la gestion d’opt-in ».

Choisir une liste de diffusion pour afficher les adresses qui n’ont pas ouvert de mail ainsi que celles qui ont ouvert mais pas cliqué de liens dedans. 

Il possible d’envoyer manuellement, liste par liste, un mail de confirmation à ces adresses.
Ce mail offre le choix de rester abonner ou de se désabonner.

Sans confirmation explicite après 7 jours, les adresses sont automatiquement désabonnées.

Migration depuis un ancien plugin

Si vous utilisiez auparavant l’un des plugins SPIP-Listes, SPIP-Lettres, CleverMail ou MesAbonnés, les inscrits seront automatiquement importés lors de l’installation de MailSubscribers (dans le cas des plugins SPIP-Lettres et CleverMail, les désinscrits sont aussi importés).

Pour cela vous devez avoir encore les tables de ces plugins dans votre base de données. Il vous faut donc désactiver votre ancien plugin, mais surtout ne pas le désinstaller car cela supprime les données.

Après avoir installé le plugin et vérifié que toutes les adresses ont bien été importées, vous pouvez désinstaller votre ancien plugin pour supprimer ses données si vous le souhaitez.

Notes

[1à partir de la version 1.6.0

[2Cette fonction nécessite la présence du plugin SPIP-Bonux

[3les adresses mails des désinscrits sont obfusquées par un md5 pour des raisons de confidentialité

[4Cette fonction nécessite la présence du plugin SPIP-Bonux

[5réserver cet usage au transfert d’inscrits d’un site à un autre, et ne pas en profiter pour importer des adresses qui n’ont pas explicitement demandé à être inscrites

Discussion

218 discussions

  • Bonjour ,

    je reprends le pb évoqué par The_Moye en juin dernier, mais je n’ai pas vu de réponse à sa question, donc je tente ma chance...

    erreur présente dans mon fichier spip.log :
    UPDATE serveur.spip_mailsubscribers
    SET lang=’fr’,langue_choisie=’oui’
    WHERE id_mailsubscriber=5
    Apr 24 10:09:23 88.182.31.143 (pid 23165) :Pri:ERREUR : Erreur mysql 1054
    Apr 24 10:09:23 88.182.31.143 (pid 23165) :Pri:ERREUR : Unknown column ’langue_choisie’ in ’field list’ - query inconnue
    Apr 24 10:09:23 88.182.31.143 (pid 23165) :Pri:ERREUR : Erreur 1054 de mysql : Unknown column ’langue_choisie’ in ’field list’

    J’ai bien compris qu’il manque la zone « langue_choisie » dans la table « spip_mailsubscribers » mais je ne sais pas comment l’ajouter (et je trouve bizarre de devoir mettre à jour la table alors que le plugin a l’air de bien fonctionner par ailleurs)

    merci de votre aide !

    Répondre à ce message

  • 1

    Salut cedric :-)
    J’étais en spip 2.1.26 avec spip-lettre 4.7.10, je viens de faire mon passage en spip 3.0.16 (php 5.3.28)
    Spip-lettre était bien desactiver quand j’ai installer :
    mailsubscribers 1.4.2 , newsletters 1.3.2 et Mailshot 1.6.3
    Le problème, est que si je regarde les « Inscrits aux envois par email » il y a dans les onglets :
    Inscrits (1334) (ils ont un carré vert à côté de leur adresse mail (active))
    Non inscrits (218) (ils ont un carré blanc à côté de leur adresse mail (pas inscrit))
    Désinscrits (129) (il ont un carré rouge à côté de leur adresse mail (suspendu))

    Et dans le bloc « liste de diffusion » :
    newsletter::newsletter (348)

    Mon problème est que je ne peux pas envoyer de courriel, puisqu’il manque les 1334 :-(
    Tu aurais une solution plutôt que de refaire l’inscription des 1334 via l’espace privé ? :-(

    • j’ai résolu le problème en faisant une requête SQL via phpadmin
      Comme les 1334 n’étaient dans aucune liste, j’ai donc via cette requête (merci l’IRC :-) )résolu le problème :
      UPDATE spip_mailsubscribers SET listes="newsletter::newsletter" WHERE listes=""

      J’ai eu un autre problème après l’envoi, mais je pense que cela vient de mailshot, donc, je vais y faire un message l’expliquant

    Répondre à ce message

  • 5

    Bonjour

    Suite à discussion sur IRC (merci à Cédric et Suske), une solution pour afficher la liste des infolettres (mon code n’est surement pas parfait)

    Appel du formulaire dans un squelette : #FORMULAIRE_NEWSLETTER_SUBSCRIBE#LISTEnewsletter,nouveaute, ...

    Copier le couple newsletter_subscribe.html / newsletter_subscribe.php dans votre dossier squelettes/formulaires avant de les modifier

    page newsletter_subscribe.html

    <div class='formulaire_spip formulaire_newsletter formulaire_[(#FORM)] ajax'>
    [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
    [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
    [(#ENV{editable})
    <form method='post' action='#ENV{action}'><div>
    #ACTION_FORMULAIRE{#ENV{action}}
    <ul>
    [(#REM) ajout du champ nom ]
    #SET{fl,mailsubscriber}
    #SET{name,nom}#SET{defaut,''}
    <li class="editer editer_[(#GET{name})]">
    <label for="#GET{name}">[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>
    <input type="text" name="#GET{name}" class="text" value="#ENV*{#GET{name},#GET{defaut}}" id="#GET{name}" />
    </li>		
    			#SET{name,session_email}#SET{obli,'obligatoire'}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
    <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
    <label for="#GET{name}"><:newsletter:label_email_subscribe:> *</label>[
    <span class='erreur_message'>(#GET{erreurs})</span>
    ]<input type="email" name="#GET{name}" class="email text" value="#ENV*{#GET{name}}" id="#GET{name}" [(#HTML5|et{#GET{obli}})required='required']/>
    </li>
    			
    [(#REM) ajout des listes - morceau de code pris dans editer_ mailscrubscriber.html]
    #SET{name,listes}#SET{defaut,''}
    <li class="editer editer_[(#GET{name})]">
    <label>[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>
    <INCLURE{fond=formulaires/inc-check-subscribinglists,name=#GET{name},choix_listes=#ENV{_listes_dispo},status=open,env} ></INCLURE>
    </li>
    			
    </ul>
    [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
    <!--extra-->
    <p class="boutons"><input type='submit' class='submit' value='<:newsletter:bouton_subscribe|attribut_html:>' /></p>
    </div></form>
    ]
    </div>
    • Suite...

      Les crochets avaient sautés...

      #FORMULAIRE_NEWSLETTER_SUBSCRIBE{#LISTE{newsletter,nouveaute,...}}

      page newsletter_subscribe.php

      <?php
      /**
       * Plugin mailsubscribers
       * (c) 2012 Cédric Morin
       * Licence GNU/GPL v3
       */
      
      if (!defined('_ECRIRE_INC_VERSION')) return;
      
      include_spip('inc/actions');
      include_spip('inc/mailsubscribers');
      
      
      /**
       * Declarer les champs postes et y integrer les valeurs par defaut
       - ajout nom, listes et listes_dispo
       */
      function formulaires_newsletter_subscribe_charger_dist(){
      	$valeurs = array(
      		'session_email' => '',
      		'nom' => '',
      		'listes' => ''
      	);
      
      if (isset($GLOBALS['visiteur_session']['email']))
      $valeurs['session_email'] = $GLOBALS['visiteur_session']['email'];
      elseif (isset($GLOBALS['visiteur_session']['session_email']))
      $valeurs['session_email'] = $GLOBALS['visiteur_session']['session_email'];
      
      $valeurs['_listes_dispo'] = mailsubscribers_listes();
      
      return $valeurs;
      }
      
      /**
       * Verifier les champs postes et signaler d'eventuelles erreurs
       */
      function formulaires_newsletter_subscribe_verifier_dist(){
      
      $erreurs = array();
      if (!$email = _request('session_email')){
      $erreurs['session_email'] = _T('info_obligatoire');
      }
      else {
      // verifier que l'email est valide
      if (!email_valide($email))
      $erreurs['session_email'] = _T('info_email_invalide');
      }
      return $erreurs;
      }
      
      /**
       * Traiter les champs postes 
      - ajout listes et nom 
       */
      function formulaires_newsletter_subscribe_traiter_dist(){
       
      // langue par defaut lors de l'inscription : la langue courante dans la page
      $options = array('lang'=>$GLOBALS['spip_lang']);
       $email = _request('session_email');
       $options['listes'] = _request('listes');
      $options['nom'] = _request('nom');
       
      $newsletter_subscribe = charger_fonction("subscribe","newsletter");
      $newsletter_subscribe($email,$options);
       
      set_request('email');
      return array('message_ok'=>_T('newsletter:subscribe_message_ok',array('email'
      =>$email)),'editable'=>true);
      }
      
      ?>

      A faire encore : quand on se désinscrit (via l’émail reçu au moment de l’inscription), on se désinscrit à toutes les listes. Le nom des id (dans formulaire) n’est pas conforme, il ne devrait pas y avoir : :

      En espérant que tout cela vous aide.
      Désolée, l’affichage du code n’est pas top, mais j’ai du supprimer les espaces pour valider mon message...
      Cécile

    • Bonjour,

      J’utilise Mailsubscribers mais je suis un néophyte.

      Je voudrais mettre sur mon formulaire la possibilité de s’inscrire à 2 infolettres : version française et version japonaise.
      Je ne comprends pas très bien où marquer les modifications dans les pages page newsletter_subscribe.php et page newsletter_subscribe.html. Pourriez-vous donner quelques indications ?

      Merci par avance.

    • Cécile propose une « surcharge » c’est à dire transformer le formulaire de base avec une version personnalisée.

      pour cela il faut :

      1. créer un répertoire /squelettes/formulaires à la racine de votre site
      2. y déposer le couple de fichiers générant le formulaire : newsletter_subscribe.php et newsletter_subscribe.html

      j’ai testé et cela fonctionne très bien.

    • Bonjour Cécile et Erationnal,
      j’utilise le code il marche parfaitement seulement je souhaiterais que le choix d’au moins une liste soit obligatoire, ce qui n’est pas le cas actuellement. Du coup si une personne ne coche aucune cache et valide ça constitue une nouvelle liste de diffusion.

      Merci par avance.
      Mathieu PATIN.

    • Bonjour,

      J’ai eu ce problème que j’ai vaguement résolu en intitulant la liste que je considère par défaut « newsletter ». Et donc un internaute qui ne coche aucune case s’y inscrit par défaut.
      Ce n’est pas idéal mais je ne sais pas comment modifier le fichier formulaires/ pour qu’il ne soit envoyé que si une case est cochée.

      De même si l’internaute est déjà inscrit le message par défaut « Votre inscription avec l’adresse adresse@site.fr a bien été prise en compte » s’affiche et non pas quelque chose du genre « Vous êtes déjà inscrit ».

      dd

    Répondre à ce message

  • 1

    Ca marche bien, j’ai pu envoyer plusieurs lettres sans problèmes, via Mandrill.
    Cet ensemble est plus pratique que Spip-listes je trouve.

    Quelques remarques quand même :
    -  Dommage qu’on ne puisse pas exporter les inscrits liste par liste, là on a tous les inscrits de toutes les listes dans le même fichier CSV, et parfois qui sont « mélangés » (pas à la suite).

    -  Sur des pages en anglais, le code [(#FORMULAIRE_NEWSLETTER_SUBSCRIBE{malettre})] donne bien un formulaire en anglais, mais quand j’inscris un email, le formulaire devient en français ainsi que le message sur la page (« Votre inscription avec l’adresse bidule a bien été prise en compte ») et celui de confirmation par email (double opt in).
    En revanche, dans Spip, l’inscrit est bien noté en langue anglaise.

    Les chaînes de traductions de langue ne sont pas toutes traduites ? Perte du contexte ?
    Ou c’est la langue de mon navigateur qui est prise en compte plutôt que celle de la page Spip ?
    Faut-il ajouter au code du formulaire un paramètre du genre lang=en ? si oui comment ?

    Merci pour toute solution utile

    • sebbesac

      Bonjour,

      + 1
      Mêmes constats pour moi au niveau de la traduction des e-mails reçus en confirmation.
      Je cherche si j’ai du nouveau, je poste DavidM

      Merci

    Répondre à ce message

  • 1

    Bonjour,

    Je ne peux pas importer tel quel un fichier texte de liste d’inscrits exporté depuis le plugin Spip-listes (avec des points virgules), l’import est en erreur.

    Mais est-il possible de convertir ce fichier d’inscrits (sans tout retaper/trier à la main, car 1200 adresses environ !) pour qu’il soit reconnu par Mailsubscribers ?
    (je peux réexporter avec des tabulations au lieu des points virgules s’il le faut)

    Quelqu’un a t-il déjà fait cette manip ?

    Peut-on changer l’ordre des champs (par rapport à celui qui se fait quand on exporte depuis Mailsubscribers des inscrits) des données importées ?

    Merci

    • J’ai pensé à une solution : sur un site de test, créer une liste spip-listes, activer Mailsubscribers pour importer les inscrits, puis exporter depuis Mailsubscribers pour avoir la liste d’inscrits au bon format, utilisable dans mon site en production. Ca devrait marcher. Ca évite de faire des manips dans Excel, export CSV etc.

    Répondre à ce message

  • Bravo à Cédric pour ce plugin qui est simple et qui fonctionne très bien.

    J’ai mis en place une Newsletter avec 950 abonnés, sous Spip 3.0.13 et j’ai juste un petit problème que je n’arrive pas à résoudre :

    je suis le webmaster d’un site qui est géré par une quarantaine de bénévoles : chaque bénévole administre une seule rubrique du site mais n’a pas les droits d’administrateur total.

    Dans l’espace privé de Spip 3.0.13, les bénévoles voient les 950 adresses emails de la liste de diffusion gérée par le plugin MailSubscribers (dans « Activité / Inscrits aux envois par email »).

    Cela est gênant en terme de confidentialité.

    Pour résoudre ce problème, j’ai voulu désactiver le plugin MailSubscribers 1.4.2 [79470] entre 2 envois de ma newsletter mensuelle, mais cela me donne une page blanche dans le formulaire d’abonnement/désabonnement du site public géré par Sarka-Spip 3.3.34 et les visiteurs du site ne peuvent plus s’abonner à la newsletter.

    Avez-vous une solution ?

    Merci pour votre aide,

    Répondre à ce message

  • 9

    Petit retour d’expérience pour éviter les mêmes désagréments aux copains.

    Pour les imports, quand vous travaillez avec OpenOffice Calc, mieux vaut manipuler les adresses dans un fichier enregistré au format ODS et ne faire l’enregistrement vers un fichier csv (utf-8 ça a marché pour moi) qu’au dernier moment pour créer le fichier utilisé par SPIP.

    En travaillant directement en csv, l’import ne reconnaissait pas les colonnes. On s’en rend compte à la prévisualisation (merci de cette utile précaution). Et si on essaie d’importer, les emails sont considérés invalides.

    • En effet, même constat ici.

      Pour que les champs soient bien reconnus à l’importation, le caractère séparateur doit être une virgule, et non un point-virgule.

      Curieusement, quand on exporte les contacts de Mailsubscribers, il sépare les champs par des points-virgule.

      Donc, en enregistrant vers CSV depuis OpenOffice / LibreOffice, il est important de spécifier la virgule comme séparateur.

    • Bonjour
      j’ai un souci, malgré les précautions prises je ne parviens pas à importer mon fichier CSV avec la virgule comme séparateur alors que j’ai configuré excel pour l’occasion :
      exemple 1 du fichier CSV avec la virgule
      à l’import je me retrouve avec le point-virgule ( fred.eric100point@orange.fr ;valide ;newsletter ::1 ) et je n’ai plus que le champ email, alors que j’avais 3 colonnes dans mon CSV
      -  et je n’ai pas non plus les inscriptions à plusieurs liste quand il y en a
      où est le problème ?

      Question subsidiaire : est-ce qu’on importe un CSV avec des colonnes séparées ? (mais reste le problème de la virgule)
      merci d’avance
      cordialement

    • Bonjour
      Personne pour m’aider ?
      J’ai plusieurs infolettres à envoyer à des groupes d’abonnés différents, je ne sais pas avant de l’importer comment rentrer ces abonnés dans le fichier CSV pour qu’en face de chaque adresse d’abonné il y ait dans la colonne statut : valide
      dans la colonne listes : la ou les listes choisis par l’abonné (comme dans mon exemple de dessus)
      A priori, une fois importé (au moment de la visualisation) il n’y a qu’une seule liste qui s’affiche pour un abonné qui peut en avoir plusieurs...
      Merci d’avance pour votre aide précieuse

    • Manuel Schmalstieg

      Ce que j’ai fait, pour être sûr que mes champs CSV soient juste, c’est que j’ai entré qqs adresses d’exemple à la main, puis exporté un CSV depuis Mailsubcribers pour analyse.

      Le résultat : les champs utilisés par le plugin sont les suivants :

      email,nom,lang,date,statut,listes,adresse postale

      Donc la première chose à faire est s’assurer que les colonnes de ton CSV soient dans le bon ordre.

      Pour la question de virgule/point virgule : je ne sais pour Excel, mais avec LibreOffice, à l’import, tu as le choix du séparateur, et il prévisualise le résultat. Donc tu choisiras dans ton cas le point virgule à l’import. Après avoir corrigé l’ordre des colonnes, tu fais « Enregistrer sous » et tu coches la petite case « Edit filter settings ». Là tu auras le choix du séparateur pour l’export, tu prends la virgule.

      Le résultat devrait ressembler à ceci :

      "moi@exemple.com","marius","fr","2011-08-15 09:57:13","valide","newsletter::newsletter_a,newsletter::newsletter_b","rue, ville"

    • Bonjour Manuel
      Merci pour ta réponse
      j’ai avancé et j’obtiens ce dont j’ai besoin, exemple :
      email,statut,listes,
      adresse1@gmail.com,valide,newsletter::3,newsletter::1,newsletter::2,newsletter::4
      adresse2@wanadoo.fr,valide,newsletter::5
      -  l’adresse1 va recevoir l’infolettre 3, 1, 2 et 4
      -  l’adresse2 va recevoir l’infolettre 5
      ... c’est bien ça ?

      Ce que je comprends pour la suite : Une fois mon fichier CSV avec les adresses ci-dessus importées dans le site, Mailsubscribers sait maintenant que telle infolettre ira à l’adresse1 telle autre ira à l’adresse2 etc..
      Je publie en ligne toutes mes infolettres à la suite les unes des autres,
      -  Une fois publiée, pour chaque infolettre dans la fenêtre « Envoyer l’infolettre » je choisi dans le menu déroulant l’infolettre en question, je clic sur « Envoyer » pour que cette infolettre aboutisse à tous ses abonnés, etc. jusqu’à ce que toutes mes infolettres soient envoyées... je n’ai rien oublié, c’est tout bon ?
      merci d’avance

    • Bonjour,
      la version 1.4.0 du plugin simplifie les imports : si le statut et les listes ne sont pas fournies par le fichier CSV, le formulaire propose de choisir les listes auxquelles inscrire les adresses importées, et de les inscrire sans demande de confirmation.

      Du coup il suffit de fournir un fichier texte avec un email par ligne pour faire ce que vous voulez !

    • GRANDE nouvelle, Cédric !

      Merci mille fois. C’est super !

    • Merci Cédric
      Cela va aider grandement
      Dans le cas de plusieurs infolettres différentes à envoyer et correspondantes à des listes différentes d’abonnés, je suppose qu’il faut importer (dans le cas d’adresses seules) un CSV contenant les adresses correspondantes à l’abonnement de la liste souhaitée et cocher dans le formulaire la bonne liste pour l’ensemble de ces adresses... mais dans le cas où certaines adresses doivent-être abonnées à plusieurs listes il faut je suppose les reprendre et les abonner manuellement, ou alors il y a une astuce que je n’ai pas vu ?

    • Bonjour Cédric, tu disais que la nouvelle version permettrait d’importer en masse sans demande de confirmation si on a un fichier ne contenant qu’une liste d’emails. Or, j’ai testé l’import de 490 inscrits à l’instant sur la toute dernière version dispo (1.4.1) et toutes ces personnes se retrouvent « à confirmer ». Comment rendre les choses plus faciles pour la rédactrice d’un de mes sites qui galère déjà pas mal pour gérer le format de csv ? Est-ce que j’ai loupé quelque chose ? Merci d’avance.

    Répondre à ce message

  • Bonjour à tous

    Mon mandat est d’ajouter lors de l’inscription le nom, prénom, ville ect...

    Est-ce possible et comment ?

    Ps. : Je ne suis pas programmeur

    Je dois également créer un Template pour que la cliente puisse remplir de texte un Template pré-déterminer

    Merci a tous

    Répondre à ce message

  • 3

    Bonjour,

    Peut-on effacer définitivement les inscrits supprimés aux infolettres, sans passer par PhpMyAdmin ;-) ?

    Le plugin Corbeille aurait pu faire mon affaire, mais il ne recense pas les inscrits supprimés.

    Merci,
    françois

    • J’ai eu le même problème : après avoir importé des adresses pour essai, j’ai voulu les supprimer mais je ne voyais pas comment...
      Je n’ai pu le faire qu’en important à nouveau deux ou trois adresses que je voulais garder mais en cochant au moment de l’import « Supprimer toutes les adresses en base »
      Dommage qu’il n’y ait pas un bouton permettant de supprimer à la demande les adresses...mais peut-être est ce voulu ?

    • Je plussoie sur ce sujet, ce serait super de pouvoir effacer sélectivement les abonnés à une liste. J’ai un client qui veut gérer ses listes en dehors (elles viennent en partie de listes de membres d’assoc gérées par un système de gestion des membres) et donc ils souhaitent réimporter les listes à jour (par ex « membres à jour de cotis » et « membres pas à jour ») chaque mois.
      Réimporter par dessus ne suffit pas, car un membre qui bascule de « pas à jour » à « à jour » doit donc être migré de liste. Hors l’import et son dédoublonnage font qu’à la fin la personne est inscrite aux deux liste (ré-importer ne désinscrit pas ceux qui ne sont pas dans l’import). D’ou la nécessité de pouvoir effacer une liste sélectivement, sans d’autre part effacer la liste de ceux qui se sont inscrit volontairement par le site.... Plus une synchro qu’un import en fait ...

    • Bon comme j’en avais besoin j’ai fait un petit script PHP sauvage qui me permet d’effacer des abonnés d’une liste spécifique (un abonné à 2 listes n’est effacé que de la liste dont on demande l’effacement, et il n’est effacé que s’il est en statut « valide » pour conserver les désinscrits anonymisés).
      C’est sûr que l’idéal serait que ce soit intégré au plugin (comme « importer des adresses », genre « vider une liste ») avec comme pour importer la possibilité de choisir la liste et éventuellement les statuts que l’on veut supprimer ... mais je ne connais pas assez les imbrications de ces plugins pour faire ça propre ...

    Répondre à ce message

  • 3

    Bonjour,

    Pour essayer de répondre à un utilisateur qui gère ses inscrits « à côté » dans des fichiers Excel mais qui en même temps aimerait pouvoir récupérer les désinscrits sur le site pour justement les effacer de ses Excel (et pour qui il ne semble pas simple de par exemple simplement exporter de temps en temps les inscrits sur le site), je me demandais si Mailsubscribers utilisait _CNIL_PERIODE pour ajouter un délai d’anonymisation ou s’il y avait possibilité d’agir sur quelque chose pour allonger ce délai qui semble quasi immédiat (ou en tous cas très court, genre 24h). Genre mettre 1 mois (c’est sa cadence d’envoi de NL) pour qu’il récupère une fois par mois les desinscrits ...

    Autre idée, qui me semble peut-être la meilleure, car celle qui respecte l’anonymisation et qui prévient le gestionnaire sans qu’il n’y ait aucune action manuelle :
    -  possibilité de copier l’email de confirmation de désinscription au gestionnaire du site ?

    Mci. Pierre.

    • Bonjour,

      Je tente un petit up sur ce message avant qu’il ne disparaisse définitivement dans les profondeurs du classement .... le dernier point surtout m’intéresse : possibilité lorsque quelqu’un se désinscrit de faire/copier le message de désinscription vers un admin du site pour qu’il puisse gérer en parallèle sa propre liste et désinscrire ceux qui le demandent.

      Pour le dernier point, je peux tenter un peu de PHP à la main, mais je ne suis pas à 100% sûr de ou mettre ça ...

      Merci.

    • Bonjour,

      le plus simple est d’utiliser l’option du plugin Facteur qui permet d’avoir une copie de tous les mails envoyé par le site. C’est ce que j’utilise habituellement et qui répond bien à ton besoin. Cela dit je note l’idée pour une prochaine amélioration.

    • Bon sang mais c’est bien sûr comme dirait ... je ne sais plus qui.
      En plus il y a eu une discussion récemment sur ce sujet sur la liste et je n’avais pas percuté que ça s’appliquait aussi à ce cas (dans mon cerveau embrumé, j’étais sur newsletter, donc MailChimp et j’avais zappé le fait que ces messages techniques n’ont rien à voir et partent par le site ...)
      Disons qu’effectivement une option dédiée serait sympa car on va avoir en double les désinscriptions mais aussi les inscriptions,et les double opt-in ... mais bon, en attendant ça va le faire :-)
      Grand merci !

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom