SPIP-Listes

Une lettre d’information avec SPIP

SPIP-listes permet la gestion et l’envoi de lettres d’information (newsletters) au moyen d’un courriel au format html ou texte. Il est possible d’envoyer des messages aux abonnés qui se sont formellement inscrits à une ou plusieurs lettres d’information via un formulaire d’inscription.

SPIP-Listes permet la gestion et l’envoi de lettres d’information (newsletters) au moyen d’un courriel au format html ou texte.
Il est possible d’envoyer des messages aux abonnés qui se sont formellement inscrits à une ou plusieurs lettres d’information via un formulaire d’inscription.

Consulter la foire aux questions de SPIP-listes

Télécharger SPIP-listes

Fonctionnalités

  • Système personnalisé de gestion des abonnements (inscription, résiliation, changement de format),
  • Envoi de messages électroniques au format texte ou html,
  • Possibilité de composer une newsletter à partir de l’éditeur de SPIP,
  • Possibilité de composer automatiquement une newsletter au moyen d’un squelette SPIP,
  • Possibilité de déclencher manuellement l’envoi des messages ou de programmer un envoi automatique à échéance régulière,
  • Prévisualisation des newsletters avant envoi,
  • Archivage des newsletters envoyées,
  • Gestion Multi-listes,
  • Module d’importation et d’exportation de liste d’adresses électroniques,
  • Option d’envoi par SMTP, avec le support éventuel de SSL.

Nota : Depuis la [version 1.9.2] l’installation du plugin crée deux nouvelles tables dans la base de donnée de SPIP. Le plugin utilise également les auteurs et les visiteurs inscrits dans la base du site.

Mise en place du plugin

** Installation **

Téléchargez SPIP-listes. Placez le contenu du fichier « zip » dans le répertoire /plugins (voir aussi la doc de SPIP), et activer le plugin SPIP-Listes.

Seuls les administrateurs du site ont les droits suffisants pour configurer et utiliser SPIP-listes.

Lorsque vous mettez à jour votre site SPIP de la version 1.8 à 1.9, vous devez :
-  installer le plugin en même temps que la version 1.9 de SPIP sous peine de perdre les listes déjà crées...
-  nettoyer votre fichier « ecrire/mes_fonctions.php » des codes de l’ancienne version de SPIP-listes (champs extras, includes).

** Ajouts aux squelettes **

Dans vos squelettes où vous souhaitez gérer les formulaires d’inscription, de résiliation et de modification des abonnements, insérez les balises #FORMULAIRE_ABONNEMENT et #FORMULAIRE_MODIF_ABONNEMENT.

Par defaut la page abonnement.html propose ces formulaires.

Un formulaire simplifié facile a modifier (CVT en SPIP 2) est également disponible, #FORMULAIRE_SPIP_LISTES_INSCRIPTION. Idéal pour la page d’accueil su site par exemple.

Vous pouvez également personnaliser le formulaire d’abonnement.

Placer la balise #SPIP_CRON sur les pages du site public (si elle n’y est pas déjà).

** Boucles, balises, filtres et formulaires de SPIP-Listes **

Formulaires
-  #FORMULAIRE_ABONNEMENT : Affiche le formulaire d’inscription. Ce formulaire peut être personnalisé (cf. l’article sur les Formulaires)
-  #FORMULAIRE_MODIF_ABONNEMENT : affiche le formulaire de modification personnel d’un abonné
-  #FORMULAIRE_INSCRIVEZ_VOUS (SPIP-Listes 1.9.3) pour s’incrire en un clic. Ce formulaire peut être personnalisé (cf. Formulaire d’inscription en un clic)

Balises
-  #DATE_MODIF_SITE : date de la dernière publication (article ou brève) sur le site
-  #DATE_MODIF_FORUM : date de la dernière publication d’un message de forum

Filtres
-  (#DATE : affiche « depuis le » avant le nombre de jours précédant un envoi.
-  (#TEXTE : permet d’afficher le texte dans une boucle MESSAGES.

Boucles
-  <BOUCLE_archives(MESSAGES) {!par date}> : affiche les derniers messages envoyés

MAJ avec spip 1.9.2 la boucle devient - <BOUCLE_archives(COURRIERS) {!par date}>

exemple complet :

<BOUCLE_archives(MESSAGES) {!par date}>
<a href="spip.php?page=courrier&id_message=#ID_MESSAGE">#TITRE - (#DATE)</a>
</BOUCLE_archives>

Note : si vous utilisez les messages de la messagerie spip ou que vous avez besoin de distinguer les courriers des messages automatiques, alors vous aurez peut-être besoin de préciser le critère {type=nl} ou {type=auto} dans la boucle.

-  <BOUCLE_1(ARTICLES) {statut=liste}> : Affiche les listes d’information disponibles

MAJ avec spip 1.9.2 la boucle devient - <BOUCLE_1(LISTES) {statut=liste}>

-  Et pour afficher un courrier envoyé dans un squelette courrier.html par ex :

<BOUCLE_courrier(MESSAGES) {id_message}>
<strong>#TITRE</strong><br />
[(#TEXTE|supprimer_destinataires)]
</BOUCLE_courrier>
<a name="#courrier"></a>

Envoi d’un nouveau courrier

Cette fonction vous permet de rédiger un e-mail pour l’envoyer à une liste d’abonnés. Comme pour un message traditionnel dans la messagerie de SPIP, les raccourcis SPIP et le Html sont acceptés.

Vous pouvez pré-visualiser le courrier jusqu’à ce que le contenu et la forme vous conviennent.

Vous pouvez choisir de l’envoyer à tous les abonnés, ou aux abonnés d’une liste en particulier (voir section « Nouvelle liste de diffusion »).

** Rédiger un courrier HTML **

Cas 1 : Entrez le texte du courrier et son code html dans l’éditeur de SPIP-listes.

Cas 2 : Vous pouvez aussi vous appuyer sur un patron (voir la section « Définir des patrons ») en important dans l’éditeur le code html qu’il génère. Il vous suffira de modifier ou de compléter ce code après l’import. Cliquez sur « Nouveau courrier », puis « Choisir un patron pour le courrier » (en sélectionner un), puis « Générer le message », ensuite cliquez sur « Valider », puis « Confirmer » et enfin « Modifier ».

Attention : si les boucles du patron ne retiennent aucun contenu (exemple : il n’y a pas eu de nouveautés), vous importerez un message vide...

Important : si vous utilisez un éditeur Html externe ou un patron, ne copiez dans le corps du message à envoyer que ce qui est strictement compris entre les balises <BODY> ... </BODY> (ne copiez pas les balises BODY...).

N’oubliez pas que les messages html vont être lus par des clients de messagerie (et non par des navigateurs). Aussi, vos messages et patrons ne doivent contenir que des balises html simples et les styles css dans les balises html (<div style="styles ici">). Pour les images, utilisez des adresses absolues (exemple : http://mon-site.fr/puce.png). Par défaut, les images et documents joints ne sont pas envoyées avec le message, mais chargés depuis l’Internet à l’ouverture du courriel.

Afficher des images avec des adresses absolues

Voici quelques exemples

-  [(#LOGO_ARTICLE||abs_url)]

-  [<img src="#URL_SITE_SPIP/(#LOGO|fichier)" >]

-  [<img src="#URL_SITE_SPIP/(#FICHIER)" >]

Attention n’envoyez pas des messages trop lourds : considérez que 10ko est un maximum !

Présentation de l’interface dans l’espace privé

L’installation du plugin crée un sous-menu « Lettres d’information » dans le menu « Édition » de Spip.

******* ici bientôt une magnifique capture ***********

L’interface de gestion par défaut présente trois onglets sous le menu général de Spip :
« Historique des envois », « Listes de diffusion » et « Suivi des abonnements »

******* ici bientôt une magnifique capture ***********

et un menu « Raccourcis » avec les items :
« Nouveau courrier » « Nouvelle liste de diffusion » « Import / Export » « Configuration »

******* ici bientôt une magnifique capture ***********

Configuration de SPIP-listes

** Mode d’inscription des visiteurs **

Abonnement simple : no comment...

Abonnement avec code d’accès : vos abonnés ont également un code d’ accès à l’espace public (statut visiteur).

L’abonnement en tant qu’auteur est également possible

******* ici bientôt une magnifique capture ***********

** Méthode d’envoi des courriels **

Fonction php (attention si elle est désactivée sur votre hébergement, vous ne pourrez pas utiliser SPIP-listes)

Envoi par serveur SMTP (optionnel) : renseigner les champs hôte (nom du serveur) et port (en général : 25)

******* ici bientôt une magnifique capture ***********

** Patrons disponibles **

(voir la section « Définir des patrons »)

******* ici bientôt une magnifique capture ***********

Tableau de bord

******* ici bientôt une magnifique capture ***********

Import / Export

L’importation d’une liste d’abonnés s’effectue avec un fichier texte (*.txt) ne comportant qu’une adresse e-mail par ligne. L’exportation utilise le même format.

Nouvelle liste de diffusion

** Intérêt de la fonctionnalité **

Si vous souhaitez pouvoir programmer un envoi automatique régulier ou proposer plusieurs listes d’abonnement, vous devez créer une ou plusieurs listes de diffusion.

Vous pourrez définir un rythme d’envoi automatique différent pour chacune des listes créées. (voir la section « Configuration de la liste et programmation de l’envoi automatique »)

Si vous décidez de ne pas utiliser la création d’une liste pour votre newsletter, consultez la section « envoi de courriers ».

Nota : le formulaire d’inscription sur le site public s’adapte en fonction de l’absence ou de l’existence d’une ou de plusieurs listes de diffusion. Il laisse naturellement à l’internaute le choix de s’inscrire à une ou plusieurs des listes proposées.

Le mail n’est envoyé qu’aux abonnés qui se sont formellement inscrits à la lettre d’information.

Le choix du format de réception est déterminé à l’inscription et chaque abonné peut modifier ses options d’abonnement en suivant une procédure d’identification par e-mail.

** Création d’une liste **

Pour créer une liste, cliquez sur « Nouvelle liste de diffusion » et tapez un titre (par exemple :« Actualité du site ») et validez.

Le masque suivant permet de configurer et de programmer un envoi automatique à destination de la liste. Ce masque peut être complété plus tard : pour cela il suffit de cliquer sur l’onglet « Listes de diffusion » et de cliquer sur le nom de la liste à modifier.

La composition du contenu d’un message automatique s’opère au moyen d’un squelette appelé « patron » (voir la section « Définir des patrons »).

** Configuration de la liste et programmation de l’envoi automatique **

  1. Le lien « Modifier cette liste » vous permet de modifier le nom de la liste et son descriptif.
  2. Dans la liste déroulante choisissez le type « publique » ou « interne ». Le formulaire d’inscription ne propose un abonnement qu’aux seules listes publiques. La liste interne n’est donc pas affichée dans le formulaire d’inscription public, ce type de liste a une vocation de test ou de listes réservées par exemple aux admins ou aux responsables du site.
  3. Si elle est différente de l’adresse du webmestre, indiquer une adresse de retour.
  4. Activez l’option « Programmer un envoi automatique », puis effectuez le choix du patron (voir la rubrique « patrons ») et indiquez la fréquence d’envoi (en jours). Le patron sera envoyé à la liste tous les X jours. Vous pouvez décider d’activer un envoi immédiat pour initialiser la newsletter automatique : en cochant la case, la date de référence du patron sera fixée à X jour dans le passé pour le premier envoi, X correspondant à la période indiquée.

** L’envoi de la newsletter **

L’envoi est traité par SPIP-listes grâce à un script appelé en tâche de fond par les pages de SPIP via le cron. Tant que le message n’est pas envoyé à tous les destinataires inscrits, la console d’administration de SPIP-listes indique que le message est en cours d’envoi. Lorsque le message a été envoyé à tous les destinataires, il est passé en archives.

Les abonnés recoivent :
-  le message en Html
-  ou une version traduite automatiquement en format texte

Définir des patrons

Les patrons sont des squelettes que l’on dépose dans le répertoire /patrons du plugin par ftp. Ils permettent de définir le contenu d’un message. Ils peuvent être employés lors de la rédaction d’un courrier ou pour un envoi automatique régulier à destination d’une liste.

De la même manière que les squelettes de votre site, vous devez donc définir les patrons que vous allez utiliser. Le plus simple, pour commencer, est de modifier le patron « nouveautes.html » en y ajoutant les boucles et le code HTML que vous désirez.

Important : Pour les messages automatiques, dans le code des patrons, le critère {age_relatif<=0} permet de n’envoyer que les éléments publiés depuis le dernier envoi (chaque liste se souvient de la date du dernier envoi, et cette date est passée au patron au moment de l’envoi).

Vous pouvez créer autant de patrons que vous le souhaitez. Si vous avez réalisé des patrons, merci de contribuer au projet SPIP-listes en les partageant sur cette page du site : bourse aux patrons.

Les patrons proposés par défaut :
-  patron « nouveautés » : envoi de l’introduction des derniers articles
-  patron « nouveauté_forum » : envoi des derniers messages publiés dans les forums

Le suivi des abonnements

Les administrateurs ont une vue générale des abonnements. Ils peuvent le cas échéant modifier le statut d’abonnement pour un abonné en particulier.

Tous les courriers sont archivés

SPIP-listes garde en archive tous les messages envoyés et signale le fait qu’une lettre des nouveautés n’a pas pu être envoyée, faute de contenu suffisamment récent.

Ce qu’il reste à faire

Pour tout le monde :
-  faire de beaux squelettes/patrons et les partager

Pour les codeurs :
-  Voir la TODO

Vous pouvez laisser vos questions, vos retours, vos idées sur le forum, et si le script vous plaît et vous rend service, ça serait sympa d’inscrire votre site dans la liste des sites qui utilisent spip-listes.

Amusez-vous bien.

Télécharger SPIP-listes

Discussion

737 discussions

  • bonsoir,

    pb lors du passage en spip3/spip-liste3 avec le formulaire de génération de courrier

    la saisie de date « à partir de »ne fonctionne pas, il n’y a pas de bouton de validation et la saisie ne change rien, la génération se fait avec comme critère la date par défaut, celle du jour

    ci-joint copie d’écran..

    merci d’avance...
    pam

    Répondre à ce message

  • 1

    Bonjour, merci pour le plugin… tout à l’air de pas trop fonctionner chez moi, sauf que deux emails sont envoyés à chaque appel ? est-ce parce que ça envoie automatiquement un copie à l’admin ?

    Peut-être avez-vous déjà eu ce souci ?

    Merci ! ;)

    • J’ai l’impression que le problème n’existe plus… tant mieux ;)

    Répondre à ce message

  • Bonjour,
    merci pour ce plugin.
    Est-il possible de récupérer l’id_liste au sein d’un patron
    (bien sur au moment de l’envoi)
    Merci

    Répondre à ce message

  • 1
    Ochiaberi

    Bonjour,
    J’ai un site en SPIP3 avec SPIP Listes 3.0.11, environ 300 abonnés. Le site est hébergé chez Free et pour le moment je ne parviens pas à passer par le SMTP, j’utilise donc l’envoi PHP. Je n’envoie que des « courriers » de façon ponctuelle, les dates n’étant pas récurrentes. Beaucoup d’abonnés ne recevant pas les messages, j’ai mis mon adresse personnelle en copie cachée et je constate les choses suivantes :
    1 - je ne reçois jamais 300 messages (meilleur score atteind 160)
    2 - le courrier passe en « archive » sans que je puisse identifier pourquoi et les envois s’arrêtent
    3 - les envois se font uniquement lorsque je me connecte a l’espace privé ET que je vais sur le menu « listes de diffusion »
    4 - quelque soit le nombre d’envoi programmé par paquet, je reçois aléatoirement des paquets de 5, 10 ou 15
    5 - le nombre de courriers envoyés dans le journal ne correspond.... à rien que je connaisse

    Je précise que je n’ai reçu aucun message d’erreur d’adresse mail, y compris lors de tests avec des adresses inexistantes. J’ai fais pas mal de tests et lu beaucoup de commentaires sans trouver de réponse à mon problème, quelqu’un pourrait-il m’aider svp help, je sèche !

    Merci d’avance.

    • Rivereine

      Bonjour,

      pour info,

      je viens de basculer un site en SPIP 3.0.13 et SPIP Listes 3.0.11 : j’ai une quinzaine de listes de diffusion automatiques. J’ai détecté qu’il n’y a pas de distribution aux abonnés avec un logo

    Répondre à ce message

  • 7

    Sur un site SPIP3, après la première page d’abonnement d’une liste que je viens de créer j’ai le message (bloquant) suivant :
    Fatal error: Call to undefined function decrire_logo() in /homez.640/fondssai/www/plugins/auto/spiplistes/v3.0.11/inc/spiplistes_api_presentation.php on line 384

    Répondre à ce message

  • 2

    Bonjour,

    afin de personnaliser les courriers, j’aimerai savoir comment récupérer le nom du patron dans la fonction spiplistes_personnaliser_courrier de spiplistes_meuleuse.
    Cela me permettrait d’appeler une fonction de personnalisation supplémentaire en fonction du patron utilisé de la façon suivante « include (find_path(’spiplistes/nom_du_patron.php’)) ; » à partir de la fonction spiplistes_personnaliser_courrier de spiplistes_meuleuse.

    Merci d’avance pour vos retours

    • Bonjour,

      n’ayant pas trouver la solution, j’ai fait l’adaptation suivante :

      -  ajout dans la première ligne du patron son nom sous la forme
      -  dans la fonction « spiplistes_personnaliser_courrier » de « spiplistes_meleuse.php », récupération de ce nom de patron et appel de la routine « nom_du_patron.php » située dans le dossier « squelettes/spiplistes » permettant une personnalisation supplémentaire du courrier

      * code à insérer dans « spiplistes_personnaliser_courrier »

      if (substr($page_html,0,12) == "<!— patron=")
      preg_match(’##’,$page_html,$patron) ;
      include (find_in_path("spiplistes/$patron[1].php")) ;

      entre la ligne
      $url = trim($auteur[’url_site’]) ;
      et la ligne
      if($format_abo == ’html’)

      * exemple d’une routine « nom_du_patron.php »

      <?php
      // personnalisation du courrier avec les coordonnées du membre
      $where = "login=".sql_quote($auteur['login']);
      if($zone = sql_fetsel("*", 'spip_membres',$where , '','', 1)) {
          krsort($zone);
          foreach($zone as $key => $val) {
              $pattern[$ii] = ",(_MEMBRES_" . strtoupper($key) .")/,";
              $replace[$ii] = $zone[$key];
              $ii++;
          }
      }
      ?>

      Voilà, en attendant de trouver LA solution.

    • (avec mes excuses pour la présentation précédente)

      Bonjour,

      n’ayant pas trouver la solution, j’ai fait l’adaptation suivante :
      -  ajout dans la première ligne du patron son nom sous la forme <!-- patron=nom_du_patron -->
      -  dans la fonction « spiplistes_personnaliser_courrier » de « spiplistes_meleuse.php », récupération de ce nom de patron et appel de la routine « nom_du_patron.php » située dans le dossier « squelettes/spiplistes » permettant une personnalisation supplémentaire du courrier

      * code à insérer dans « spiplistes_personnaliser_courrier »

      if (substr($page_html,0,12) == "<!-- patron=") {
              preg_match('#<!-- patron=(\w+) -->#',$page_html,$patron);
      	include (find_in_path("spiplistes/$patron[1].php"));
      }

      entre la ligne

      		$url = trim($auteur['url_site']);

      et la ligne

      		if($format_abo == 'html') {

      * exemple d’une routine « nom_du_patron.php »

      <?php
      // personnalisation du courrier avec les coordonnées du membre
      $where = "login=".sql_quote($auteur['login']);
      if($zone = sql_fetsel("*", 'spip_membres',$where , '','', 1)) {
      	krsort($zone);
      	foreach($zone as $key => $val) {
      		$pattern[$ii] = ",(_MEMBRES_" . strtoupper($key) .")/,";
      		$replace[$ii] = $zone[$key];
      		$ii++;
      	}
      }
      ?>

      En attendant LA solution

    Répondre à ce message

  • 2

    Bonjour !
    Je viens d’installer Spip-listes pour un site qui tourne sous SPIP 2.1.24 [20945] (j’utilise le trio Infolettres qui fonctionne nickel sur SPIP3).

    Je rencontre un problème très très énervant : dans l’espace privé, pendant que je travaille sur mes courriers à envoyer, une redirection s’opère toute seule et de façon totalement intempestive vers cette page http://monsite.fr/ecrire/?exec=spiplistes_menu_navigation&bonjour=oui.
    Résultat : une page blanche avec deux liens très vilains « Créer un courrier » et « Créer une lettre de diffusion ».
    Ensuite, impossible d’en sortir si je tente de recharger une page de config du plugin. Il me faut repasser par http://monsite.fr/ecrire/ pour sortir de cette boucle infernale.

    Grand merci pour votre aide.

    • j’ai ça sur les 2 sites SPIP 2.1.24, depuis toujours, ie 2 ans. à partir de n’importe quelle page de l’admin, pas seulement quand je travaille sur les courriers. Je clique sur Créer un courrier pour revenir dans l’admin et faire ce que je veux. Mais c’est énervant.

    • Merci pour ce retour. C’est dommage que Spip-listes soit laissé en l’état. Les fichiers actuels sont composés de nombreuses couches résiduelles, bourrées de petits problèmes. On met un temps fou à comprendre comment sont organisés ces fichiers, le forum ne répond pas, ça fait partie des trucs qui m’énervent dans Spip (malgré ma grande fidélité au CMS depuis la version 1.9).

    Répondre à ce message

  • Bonjour,
    Je n’arrive pas à écrire une adresse mail dans le champ du formulaire. Mon clavier reste sans effet.
    J’ai mis dans mon squelette :
    #FORMULAIRE_SPIP_LISTES_INSCRIPTION
    J’ai Spip 2.1.10 et SPIP-Listes 2.234.5 qui à l’air de fonctionner.
    Quelqu’un peux m’aider ?
    Merci d’avance

    Répondre à ce message

  • Bonjour,

    Après une très grosse mise à jour de Spip, j’ai installé le plugin version 3.011 sur le dernier Spip v 3.011. Impossible de rien tirer, j’ai le plus souvent une page blanche quand je tente de voir les liste de diffusion ou de créer un courrier, ou même de configurer le plugin. J’obtiens aussi cet étrange message d’erreur :

    Fatal error: Class 'PHPMailer_2003' not found in XXXXX\plugins\auto\spip-listes-spip3\inc\spiplistes_mail.inc.php on line 37

    Que puis-je faire pour corriger cela ?

    Merci.

    Répondre à ce message

  • Bonjour,

    Je n’arrive pas à faire fonctionner la boucle pour afficher la liste des courriers dans le site public. J’ai ajouté ceci à mon squelette :

    <BOUCLE_archives (COURRIERS) { !par date}>
    <li>#TITRE</li>
    </BOUCLE_archives>

    L’erreur est la suivante :

    Erreur SQL 1054
    Unknown column ’courriers.Array’ in ’field list’
    SELECT courriers.Array, courriers.titre FROM spip_courriers AS courriers ORDER BY courriers.Array DESC

    Quelqu’un a eu le même problème ? parce que je ne sais pas du tout par où commencer...

    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