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,
    et merci pour ce plugin
    Une question
    Quand je met à la poubelle un « inscrits » celui-ci reçoit un email.
    Est-il possible de désactiver cet envoi ?

    Bruno

    Répondre à ce message

  • 4

    Bonjour,

    Pas 100% sûr d’être sur le bon plugin de la trilogie, mais j’essaye. Je me demandais pourquoi il n’était pas possible d’envoyer une infolettre à une liste en statut « fermée ».

    Pour moi ce statut signifie juste que l’on ne veut pas que les internautes s’inscrivent dessus (dans mon cas une liste de professionnels sélectionnés), mais je veux quand même être en mesure de leur envoyer des courriers (sinon à quoi cela sert-il ?).

    Le dommage collatéral c’est que pour envoyer je suis obligé de la passer en statut « ouverte » et que donc pendant le temps de l’envoi cela ouvre la possibilité pour les gens de s’inscrire sur le site sur cette liste que je souhaiterai fermée ...

    Bref c’est un bug ou une « feature » ?

    • Si vous ne voulez pas que des gens s’y inscrivent, vous n’avez qu’à pas mettre le formulaire dans vos squelettes, non ?

    • Ce site comporte 4 listes, 3 ouvertes et 1 fermée (celle dont on parle). Mon squelette affiche un formulaire d’inscription avec un champ pour l’email et 3 cases à cocher pour que les gens choisissent sur laquelle des 3 listes ouvertes ils souhaitent s’inscrire.

      Donc quand je veux envoyer un mail à la liste fermée, je suis obligé de la passer en « ouverte », et automatiquement cela fait apparaitre une 4e case à cocher avec cette liste ...

      Mais comme je dis, c’est un dommage collatéral, je pourrai trouver un moyen d’empêcher que cette case apparaisse, mais la vraie question est « pourquoi on ne peut pas envoyer de mailing à une liste fermée » ?? Comme je le dis, une liste fermée pour moi veut dire « sur laquelle on en peut pas s’inscrire », pas du tout « à laquelle on ne peut rien envoyer » ....

      Donc soit je ne comprend pas comme il faut le terme « fermé », soit c’est un bug.

    • Je me suis posé exactement la même question, et j’ai le même type de configuration. J’ai des listes qui sont gérées manuellement, et d’autres ouvertes. Donc pour moi, le statut dans la page de config des listes correspondait à ça. Là je suis obligé d’expliquer aux admins de toujours mettre en « ouverte », ce qui n’est pas logique pour elleux.

    • C’est bon de se sentir moins seul :-)
      Pierre.

    Répondre à ce message

  • Bonjour,

    Quand on se désincirt le mail envoyez propose de se réabonner directement mails le mail dans l’url est casser ce cela provoque une erreur sur le site. Comment corrigé cela ?

    Répondre à ce message

  • Bonjour,

    Serait-il possible de remplacer le terme newsletter par infolettre dans le fichier lang, comme cela a été fait dans le plugin Newsletter ?

    Merci,
    françois

    Répondre à ce message

  • 5

    bonjour

    je n’arrive pas à afficher la possibilité de s’inscrire à plusieurs newsletter ou de choisir à laquelle on veut s’inscrire. J’ai ajouté la balise : #FORMULAIRE_NEWSLETTER_SUBSCRIBEnewsletter,nouveautes avec mes id de news à savoir exactement : #FORMULAIRE_NEWSLETTER_SUBSCRIBEnewsletter1,newsletter2,newsletter3

    et lorsqu’on s’abonne, on s’inscrit automatiquement à newsletter (qui s’est automatiquement créée alors qu’elle n’existait pas) et pas non plus le choix dans les mails reçus. C’est comme si je n’avais pas créé ces 3 newsletter...

    Donc en fait, comment fait-on pour s’inscrire à plusieurs news ou choisir celle ou celles auxquelles on veut s’inscrire ?

    Merci

    • et j’ajoute en plus que lorsqu’on essaye de s’inscrire, cette inscription reste bloquée dans la liste des travaux, il faut valider manuellement chaque inscription. Pas trop pratique car il est difficile de deviner si quelqu’un s’est inscrit ou non... ou alors il faudrait que je passe toutes les minutes sur mon site pour débloquer la liste des tâches... je ne sais pas comment supprimer cette option qui est plutôt bloquante.

    • Bonjour,

      Pour ma part je n’ai pas non plus réussi par cette méthode, donc j’ai fait autrement mais je ne sais pas si je peux poster ici 200 lignes de code ... peut-être en message privé ?
      A noter que j’ai trouvé la méthode sur le net, je ne suis pas l’auteur, mais j’ai aussi ajouté ma sauce ...

      Pierre

    • Bonjour

      je veux bien le lien pour la méthode sur le net alors, ça pourrait m’aider. J’ai fait autrement également, j’ajoute manuellement les mails via l’interface d’admin du plugin, mais bon, ce n’est pas gérable à la longue. J’ai voulu remettre SPIP Liste qui fonctionnait bien, mais j’avais déjà tellement bossé pour tout configurer, mettre en forme sur le site, créé les news, entré les mails que j’aimerais mieux arriver à dompter celui-ci que de changer et de perdre encore trop de temps à tout recommencer...

      Donc merci pour le lien si possible !

    • J’ai eu du mal à retrouver le lien vers ce qui m’avait amené à la solution, forcément, je cherchais partout sauf ici :-(

      http://contrib.spip.net/Mailsubscribers?debut_comments-list=20#forum468759

      Sur la page à partir de 20 ....

    • oh merci ! désolée de vous avoir fait perdre du temps à chercher, je pensais que ça aurait été plus rapide pour vous que pour moi, si j’avais su j’aurais cherché moi-même, quoi que, j’avais déjà cherché ce qui m’avait amenée sur ce forum :-)

      Encore mille mercis, je vais donc regarder cela de plus près.

      Bonne journée

    Répondre à ce message

  • Bonjour,

    Je m’embrouille un peu dans la gestion des newsletter et des inscrits, quelques questions :

    -  en général j’utilise des imports de liste avec forçage « valide » et « nom de la liste »

    -  je me demandais pourquoi certaines listes s’affichent comme « newsletter::public1 » et d’autres comme juste « public2 » alors que mes imports comportent tous « newsletter: : » devant.

    -  pire, je me retrouve parfois avec un « newsletter::public1 » et un « public1 » avec des inscrits différents, avec sur la page de liste des newsletter deux listes « public1 » (même identifiant ce qui me parait très bizarre et dangereux) avec une des liste « Ouverte » et l’autre aucun des boutons « Ouverte/Fermée/supprimée » coché (et impossible d’en cocher un).

    -  quand on fait un import csv, les contacts qu’on importent écrasent les contacts existants similaires, ce qui rend apparemment impossible d’inscrire un contact à 2 listes en utilisant la méthode de l’import (ce qu’on peut faire en modifiant une inscription et en cochant 2 listes). Y-a-t-il un moyen de spécifier l’appartenance à 2 listes quand on fait un import csv ? genre « newsletter::public1, newsletter::public2 » ?

    Merci d’avance.
    Pierre.

    Répondre à ce message

  • Bonjour :-)
    Je ne sais pas si c’est fait exprès ou pas, mais si on regarde :
    .../ecrire/ ?exec=mailsubscribers&liste=
    Dans « date », cela n’affiche que la date d’insciption et cela peut importe l’onglet « tous », « Désinscrits », etc
    En faite, je voulais savoir si concernant « Désinscrits » et « Supprimés » il serait possible d’afficher à la place non pas la date d’inscription, mais la date de « mise à jour » dans la colonne « maj »

    Cordialement, Franck

    Répondre à ce message

  • Bonjour,

    J’ai coché le Double Opt-in, configuré « Facteur » à l’identique de Mailshot (SMTP testé avec l’envoi de la newsletter, donc ok), et pourtant, après m’être inscrit, je ne reçois pas de mail de confirmation...
    Les adresses d’inscription apparaissent bien dans les onglets « Tous » et « Inscrits » sur la page « inscrits aux envois par email »...
    Ou dois-je regarder-investiguer ? Une idée ?

    SPIP 3.0.16 et plugins à jour

    En tout cas, merci pour ce précieux travail ! ;-)
    kris

    Répondre à ce message

  • 1

    bonsoir

    après plusieurs tests pourtant positif, j’ai eu un pb à la migration live demon site de spip3 vers spipr avec migration de spip-liste vers newsletter

    la migration des données ne s’est pas faite

    après avoir pas mal farfouillé dans mes essais préalables pour tenter de récupérer le plus gros des données [1], j’ai finalement décidé de désinstaller totalement newsletter et subscriber et mailshot, puis de remettre spip-listes avant de retenter la migration

    or, j’ai alors ce message d’erreur, dont je n’ai aucune idée s’il a un rapport avec mon contexte...

    Fatal error : Call to undefined function mailsubscribers_normaliser_nom_liste() in /home/venissie/web/spipr/plugins/auto/mailsubscribers/v1.5.5/mailsubscribers_administrations.php on line 48

    en relancant la page malgré cette erreur j’arrive au message suivant

    Gestion des plugins

    Actions réalisées

    Le téléchargement et l’activation du plugin « MailSubscribers » (version : 1.5.5) se sont correctement déroulés

    Actions non réalisées
    Télécharger et activer le plugin « MailShot » (version : 1.6.5)
    Télécharger et activer le plugin « Newsletters » (version : 1.3.5)

    Certaines actions n’ont pas été réalisées. Cela peut provenir d’une erreur lors des actions à réaliser, ou d’un affichage de cette page alors que des actions sont encore en cours. Les actions avaient été lancées par pam le 5 septembre 2014 à 23h44min.

    puis une longue liste de message d’erreur surla tablsubscribers qui n’existe pas lors de la tentative d’import

    rien de plus dans les logs a priori...

    merci d’avance d’une piste

    pam

    • bonjour,

      une fonctionnalité de spip-listes qui n’est pas reprise dans mailsubscriver à priori...
      importer les inscriptions à une liste sans écraser les inscriptions aux autres...

      a priori, l’import d’un mail écrase si ce mail existait déja... doncpas possible d’ajouter pour un mail une inscription par import...

      demande pour une future version... ??

      pam

    Répondre à ce message

  • Jaseur Boreal

    Bonjour Cédric,

    Une question partagée avec le formidable « Formulaire de participation »
    Voir ici : http://contrib.spip.net/Formulaire-de-participation#forum476512

    Comment sur un même questionnaire formidable incorporé pour une inscription à un évènement, profiter en mêm temps du remplissage des coordonnées, pour proposer aussi un choix d’inscription à différentes newsletters
    exemple :

    • une en français
    • une en Chti,
    • une en letton, etc ...

    Comment faire ?

    Merci de tous tes conseils, trucs et astuces.
    Cordialement

    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