· Tech watch

Plugin CleverMail pour SPIP, pour une gestion simple de lettres d’informations

Clever Age vient de reverser son premier plugin pour SPIP 1.9.2. Ce plugin est basé sur CleverMail, un gestionnaire de lettres d’information qui avait déjà été intégré dans SPIP-Agora.

Attention, ce plugin existe maintenant en version améliorée pour SPIP 2, et est complètement documenté [sur SPIP-Contrib->http://www.spip-contrib.net/CleverMail] !

Il existe 2 autres plugins permettant la gestion des lettres d’informations sous SPIP :

  • [SPIP-Listes->http://www.bloog.net/spip-listes/] qui utilise les auteurs (au sens SPIP) pour gérer les abonnés, contrairement à CleverMail qui utilise une table séparée.
  • [SPIP-Lettres->http://trac.rezo.net/trac/spip-zone/wiki/SpipLettres] que je n’ai pas eu l’occasion de tester sur les dernières versions SVN de SPIP

Fonctionnalités

  • Utilisation de n’importe quelle adresse web — donc notamment des pages créées avec des squelettes SPIP — pour générer le contenu des messages des lettres d’informations
  • Support des formats HTML et texte, avec liberté pour l’utilisateur de choisir son format de prédilection
  • Personnalisation complète en front-office (notifications et formulaires)
  • Multilinguisme de l’interface
  • Import des abonnés depuis un fichier CSV
  • Prévisualisation des lettres avant l’envoi
  • Choix du mode de modération des inscriptions

A chaque lettre d’information sont liés des abonnés et des adresses de contenus.

Intégration du plugin dans le front office

Pour afficher le formulaire d’inscription dans un squelette, il suffit d’ajouter la balise suivante :

#FORMULAIRE_CLEVERMAIL

S’il existe plusieurs lettres, une liste déroulante à choix unique sera affichée.

Pour n’afficher le formulaire que pour une lettre spécifique (pour la lettre n°1), il suffit d’ajouter un critère :

#FORMULAIRE_CLEVERMAIL<em>lettre1</em>

Personnalisation du plugin

Afin de personnaliser au maximum l’intégration de ce plugin dans votre site, il est possible de surcharger les chaînes de langues utilisées sur le front-office (messages de confirmation, d’erreurs…).

Il suffit pour cela de dupliquer le fichier /plugins/clevermail/lang/clevermail_fr.php dans votre dossier de squelettes, par exemple /squelettes/lang/clevermail_fr.php et d’éditer les chaînes désirées (en faisant bien attention à la syntaxe).

De la même façon, il est aussi possible de surcharger les formulaires par défaut en dupliquant les fichiers /plugins/clevermail/formulaires/formulaire_clevermail.html et /plugins/clevermail/formulaires/formulaire_clevermail_simple.html dans votre dossier squelettes une fois de plus, par exemple /squelettes/formulaires/formulaire_clevermail.html.

Vous pouvez aussi changer l’interface de la page de confirmation d’inscription (dans le cas d’une modération des inscriptions) en surchargeant le squelette /plugins/clevermail/clevermail_do.html dans votre dossier squelettes une fois encore, par exemple /squelettes/clevermail_do.html ainsi que la page de confirmation de désinscription /plugins/clevermail/clevermail_rm.html avec /squelettes/clevermail_rm.html.
_ En faisant bien attention à chaque fois de réutiliser les balises adéquates #CLEVERMAIL_VALIDATION et #CLEVERMAIL_UNSUBSCRIBE.

Envoyer des lettres d’informations

En attendant que le plugin soit à 100 % « SPIP-ifié » (utilisation de SPIP_CRON), après avoir choisi d’envoyer un message, il faut cliquer sur le lien pour forcer l’envoi aux abonnés (par paquet de 50 par défaut, mais modifiable dans « Paramètres ») et répéter l’opération tant qu’il reste des abonnés en attentes.

Edit du 12/01/07 : Le plugin utilise désormais SPIP CRON donc les envois se feront au fils des visites de votre site (vous pouvez forcer la périodicité des envois en ajoutant #SPIP_CRON dans un de vos squelettes).

Ou alors il faut programmer une tache CRON qui appellera http://URL_DU_SITE/ecrire/?exec=clevermail_queue_process à un intervalle régulier.

Télécharger le plugin

Le plugin est disponible sur le SVN de [SPIP-Zone->http://zone.spip.org/trac/spip-zone/] à cette adresse : svn://zone.spip.org/spip-zone/_plugins_/_stable_/clevermail/

Vous pouvez aussi télécharger la version snapshot.

47 commentaires

  1. C’est quoi l’intérêt d’avoir 3 plugins quasi identiques ???? pourquoi ne pas contribuer sur d’autres points plutôt que de rajouter des choses déjà existantes qui ne demandent qu’à évoluer ??

  2. La publication me parait un brin rapide surtout le Il faut cliquer sur le lien pour forcer l’envoi aux abonnés est assez rédibitoire avec un nombre important d’abonnés alors qu’un spip cron est vide codé.
    a+
    Arnaud

  3. Thomas Beaumanoir

    @Yo ! : Car les plugins ne partent pas forcement sur les mêmes bases de fonctionnement. Les abonnés dans certains cas sont des auteurs, les templates ne sont pas forcement liés à une lettre d’information mais à une instance… Autant de choses, qui font, qu’il était plus simple de faire un plugin « from scratch » pour répondre à notre besoin bien spécifique ;)

    @Arnaud : C’est le risque quand on utilise un plugin qui n’est pas encore au statut stable… Quoi qu’il en soit l’interface restant assez conviviale, je doute que cela soit si rédhibitoire que ça. Mais de toute façon le spip cron viendra, patience :)

  4. Bonjour, ce billet possède le tag « logiciel libre », mais je ne vois pas de licence pour le plugin sur la zone, j’ai mal cherché ?

  5. Thomas Beaumanoir

    @Ben. : C’est désormais chose faite et puisque l’on parlait tout de même de SPIP dans ce billet, le tag avait lieu d’être ;)

  6. Et pourquoi pas simplement un SMTP ? comme sur la dernière version de SPIP-LISTE ?
    Merci dans tous les cas de jouer le jeu et de reverser votre développement suite à votre retour vers SPIP ;)

  7. Nicolas Hoizey

    Comment ça, un SMTP ?

  8. Marc Cervennansky

    Bonjour.

    Je tente d’utiliser le plugin dans un site réalisé sous Spip 1.9.1
    lorsque je valide la création d’une nouvelle lettre d’information avec Clevermail j’ai une page blanche qui s’affiche… Une idée de la cause de ce disfonctionnement ?

  9. Thomas Beaumanoir

    @Marc : Bonjour, le plugin a été développé pour la version 1.9.2 (svn) donc il est tout à fait possible qu’il ne fonctionne pas avec la version 1.9.1 (stable)…

  10. Script presque parfait.
    Ses atouts : fonctionne parfaitement, facilement adaptable, options très souples (modeles html et txt séparés, …)

    Il ne lui manque qu’un réglage de la périodicité d’envoi pour ceux qui, comme moi, ne savent pas programmer des tâches CRON.

    Des pistes ?

    Cordialement.

  11. Thomas Beaumanoir

    La périodicité dépend uniquement du traffic du site, l’envoi via SPIP CRON s’effectue en tache de fond, en temps utile.
    Si la balise #SPIP_CRON est utilisée dans un squelette, les taches de fond devraient théoriquement s’effectuer plus régulièrement… mais une fois de plus tout dépend du traffic ;)

  12. Merci de cette réponse rapide.
    Je pense m’être mal exprimé : comment faire pour régler la périodicité de l’envoi de la lettre ? Tous les 10 jours par exemple.
    L’utilisation de squelettes permet bien de s’affranchir de la tâche de création du message, mais CleverMail offre-t-il la possibilité d’« oublier » la lettre de nouveautés ?
    – Cette fonctionnalité existe-t-elle ?
    – Faut-il programmer le squelette en conséquence ? (Et si oui, comment …)

  13. Thomas Beaumanoir

    Malheureusement il n’est pas possible de programmer un envoi automatique à échéance réguliere d’une lettre d’information… il me semble en revanche que Spip-Listes le gère

  14. Nicolas Hoizey

    S’il s’agit uniquement de faire un envoi automatique tous les n jours, les alertes éditoriales natives de SPIP, envoyées dans une mailing-list, font parfaitement l’affaire.

  15. Merci pour ce plugin qui fonctionne très bien. Avez-vous des modèles (squelettes) de lettre au format texte et html sur lesquels on pourrait s’inspirer ?

  16. Bonjour
    J’aimerai bien tester ce plugin pour un site que je construit, mais quand je l’envoi dans le dossier plugin, spip/configuration/gestion des plugins m’écrit
    « Fatal error: Only variables can be passed by reference in c:\program files\easyphp1-8\www\carlottavaldes\ecrire\inc\plugin.php on line 447 ».
    Je travaille avec la derniére version de spip, le squelette MGS et easy php en local ???
    Quelqu’un pourrait-il me dire pourquoi cet erreur apparait et comment la corriger, mes compétences n’étant pas suffisante.
    Merci d’avance ppour votre réponse.

  17. Bonjour,

    j’ai 2 erreurs : lorsque je veux regarder la newsletter au format HTML que je viens d’envoyer j’ai :
    Message from list «  » sent to xxxx@yyyyy.com in text format

    Fatal error: Call to undefined function: cron_clevermail_cron() in /home.50/t/o/u/xxxxx/www/natixis/ecrire/inc/cron.php on line 114

    et lorsque je veux forcer l’envoi j’ai :
    Fatal error: Call to undefined function: cron_clevermail_cron() in /home.50/t/o/u/xxxxx/www/natixis/plugins/clevermail_1_9_2/exec/clevermail_queue_process.php on line 14

    que se passe-t-il ?

    a++

    Alex

  18. Thomas Beaumanoir

    @Alex : c’est corrigé dans la version 1.0.3, merci du retour.

  19. Bonjour,

    l’installation de la 1.O.3 corrige bien le bug signalé par Alex, mais le message d’erreur apparait dans le corps du message envoyé (au format html)

    Fatal error: Call to undefined function cron_clevermail_cron() in /var/www/sich/cephas/web-paroisse.com/ecrire/inc/cron.php on line 114

    Une piste ?
    Bien cordialement
    Pierre

  20. Thomas Beaumanoir

    @Pierre : je ne reproduis pas cette erreur avec une installation vierge de SPIP 1.9.2c et la version 1.0.3 du plugin…

    Il me semble d’ailleurs que la fonction « cron_clevermail_cron() » n’est plus utilisée dans le plugin donc vérifie bien que tu possèdes les derniers fichiers.

  21. Bonjour,
    effectivement mauvaise gestion des transferts des fichiers une désinstallation et un bon nettoyage permettent de confirmer le bon fonctionnement. Merci

  22. Bozec Matthieu

    Bonjour,

    Félicitation pour le travail accompli, le plugin est vraiment bon et simple à utiliser.

    Néanmoins j’ai un petit souci, je ne sais comment ajouter un lien de désinscription dans la newsletter.

    Je n’arrive pas à trouver la balise adéquate.
    Je suis preneur si quelqu’un à une idée.

  23. Thomas Beaumanoir

    @Matthieu : il s’agit du tag #CLEVERMAIL_UNSUBSCRIBE

  24. J’ai installé avec succès ce gestionnaire de lettres d’information cependant je n’arrive pas à utiliser des pages créées avec des squelettes SPIP pour générer le contenu des messages des lettres d’informations. En fait, je souhaiterais créer ces lettres d’informations en publiant des articles dans une rubrique spécifique (id=11).
    J’ai mon squelette « rubrique=11.html » qui fonctionne bien en affichant uniquement l’article le plus récent publié dans cette rubrique, mais dans l’admin. de CleverMail cela ne fonctionne pas. J’ai pourtant donné comme URL des templates générés http://monsite.net/spip.php?rubrique=11
    Un utilisateur de ce plugin peut-il m’indiquer la procédure à suivre pour interfacer correctement l’édition des lettres CleverMail dans Spip.

  25. Bonjour,
    J’ai un site bilingue Français, Arabe . Comment je fait pour afficher le formulaire en arabe SVP? Merci.

  26. Thomas Beaumanoir

    @Antoine : Tu peux peut être essayer avec http://monsite.net/spip.php?page=rubrique&id_rubrique=11

    @ahlan : Il te suffit de créer le fichier de langue clevermail_ar.php dans le répertoire lang/ de ton dossier squelettes en t’inspirant de /clevermail/1_9_2/lang/clevermail_fr.php

  27. Merci pour votre réponse Thomas,

    maintenant j’ai un problème d’affichage ; les caractères du formulaire sur la page en arabe s’affichent sous forme de point d’interrogation !!!

  28. Thomas Beaumanoir

    @ahlan : il doit s’agir d’un problème d’encodage… vérifies bien l’encodage de ton fichier de langue, de tes squelettes et de ta base

  29. Hello

    On télécharge où ce plug in ?

    Merci !

  30. bon j’ai trouvé le plugin mais c bien trop compliqué à installer pour des néophytes de mon style. Quand je lis Copy class.phpmailer.php into your php.ini include_path… je sais même pas ce qu’est ou où se trouve ce php.ini… Tant pis :-/

  31. Bonjour,
    et merci pour ce chouette plugin.
    Une remarque et une question :

    – Mon serveur local n apprecie pas les ouverture de bloc php avec un simple parfois utilise dans ce plugin, j ai fait un rechercher remplacer global par la forme entiere et ca marche...

    - Par contre, impossible de faire afficher le formulaire de desabonnement, autant la balise #FORMULAIRE_CLEVERMAIL genere bien le formulaire d inscription, autant #CLEVERMAIL_UNSUBSCRIBE ne me retourne rien comme html (le fichier et cependant bien appele), une idee pour resoudre ca ?

    merci beaucoup pour le travail
    triton

  32. Thomas Beaumanoir

    @triton : concernant l’utilisation de la syntaxe courte , tu peux autoriser son utilisation en modifiant la variable short_open_tag dans le php.ini

    En ce qui concerne la balise #CLEVERMAIL_UNSUBSCRIBE : elle ne retourne quelque chose que quand elle est utilisée dans un squelette auquel on passe en GET les paramètres de désinscription (url générée grâce à @@URL_CONFIRMATION@@)

  33. Bonjour,
    et merci pour la reponse.
    Je comprends le principe, par contre, je ne vois pas comment utiliser @@URL_CONFIRMATION@@
    a quel endroit utiliser ce tag ? Je pensai que le mail lettre d information emis comporterait automatiquement un lien parametré permettant de renseigner le formulaire genere par #CLEVERMAIL_UNSUBSCRIBE, mais ce n est pas le cas…
    Qu est ce que je rate ?
    merci
    triton

  34. Bonjour,
    je me replonge dans la newsletter, pour le pb au dessus, en fait c est tout simple, faut juste mettre @@URL_CONFIRMATION@@ dans le squelette (mais ca ne se voit pas en mode previsu d ou mon incomprehension initiale…)
    Par contre, il semble que certaines messageries exotiques ont du mal a interpreter les mails au format html… Faut il indiquer le type de header au niveau du squelette avec une directive du type : #HTTP_HEADER(Content-Type: text/html; encoding: iso-8859-1)
    merci

  35. Que faut-il écrire dans :

    URL des templates générés
    Version HTML :
    Version TXT :

    Lorsque je clique sur nouveau message de ma liste tout juste créer. je ne peux qu’entrer le titre du message et c’est tout … Pourquoi ?

    Cordialement
    Michel

  36. denys quelever

    C’est pareil, je n’ai que le sujet du message et je ne peux ajouter rien d’autre???? j’envoie donc des messages vides

  37. Thomas Beaumanoir

    @Michel et @Denys : le champs URL sert à indiquer l’URL où trouver le gabarit, il peut aussi bien s’agir d’un squelette SPIP que d’une page HTML statique mais quoi qu’il arrive ce n’est pas CleverMail qui va vous permettre de composer ce qui sera expédié à l’exception du sujet du mail.

  38. denys quelever

    OK, j’ai compris. J’ai mis donc dans le champs
    « URL des templates générés » une adresse valide d’une page html de mon site Spip. Mais après un long moment de création du message. L’aperçu montre une page vide et l’envoi idem????

  39. Bonjour,

    je travail en local et et malheureusement clevermail ne propose pas comme spip-listes la possibilité de travailler avec php mailer ou smtp. dans mon cas, je souhaite travailler en smtp avec clevermail.

    pourriez-vous m’indiquer le fichier a modifier

    par avance merci pour ce plugin

  40. Bonjour,

    Sur mon serveur se cotoient des sites sous SPIP « indépendants » et d’autres déjà mutualisés. Clevermail, installé en plug-in sur un des sites SPIP indépendants, et s’avère incapable de rapatrier une page de certains sites mutualisés : page blanche (aucun problème pour tous les autres sites).

    Après quelques test, je reste perplexe: même si deux sites mutualisés partagent le même squelette et la même base (fichier connect.php identique), clevermail ne peut importer les pages que de l’un et pas de l’autre.

    La seule différence entre les deux sites est le sous-domaine défini (variantes du même domaine). Auriez-vous une idée de la source du problème ?

    Pour précision : Clevermail v.stable tourne sous SPIP 1.9.2d, et les sites mutualisés dont il doit aller chercher les pages sont sous SPIP 2.0 beta.

    Merci de vos lumières

  41. Michel Thomé

    Bonjour

    J’ai installé ce plug-in sur un site tournant sous spip 1.9.2e et ça marche à merveille :-)

    Bravo et merci !

  42. Y’a t-il un moyen de bloquer les robots qui s’inscrivent?

  43. Bonsoir,
    je vois qu’il y a longtemps que plus personne ne laisse de commentaires ici mais je préfère tout de même tenter ma chance!
    Je viens de découvrir ce plug-in qui marche à merveille, merci pour ça!
    Je tente de personnaliser les formulaires, pour ça je réussi bien à modifier les pages « formulaire_clevermail_simple.html » et « formulaire_clevermail.html » afin de créer les champs supplémentaires.

    Même si je duplique ces pages dans mon dossier squelettes je ne parviens pas à récupérer les informations supplémentaires entrées par le visiteur dans le mail envoyé à l’admin.

    Pour cela je me doute bien qu’il doit y avoir une autre manip à effectuer mais laquelle?
    Merci pour votre réponse

  44. Bonjour Thomas.

    Je constate avec joie qu’une version mise à jour de Clevermail est sortie pour SPIP 2, avec tout ce que j’attendais (entre autres le changement de nom des tables sql !). L’association notamment avec le plugin Facteur est extra. Merci. Je ne sais pas trop où faire une remontée d’expérience, donc j’essaie ici.

    Je me suis empressé de le tester, et je me heurte à quelques bugs :

    – à l’installation sur un spip vierge, la table spip_cm_settings est créée vide chez moi. Or les champs « paramètres » ne peuvent être validés que si ces champs préexistent dans la table. L’installation semble ne pas créer ces champs.

    – une fois une liste créée, il m’est impossible de créer un « nouveau message ». Le bouton « nouveau message » reste sans effet. A noter que ce bouton ne s’affiche correctement que si le plugin Spip Bonux est installé, bien qu’il ne soit pas indiqué comme étant requis. Sans le plugin Bonux, à la place du bouton « Nouveau message » s’affiche : {<:clevermail:nouveau_message:>,#URL_ACTION_AUTEUR{clevermail_post_create,#LST_ID,#SELF,ajax}}

    Ai-je loupé quelque chose ?

    Configuration de test :
    SPIP 2.0.9 SVN [14364],
    plugins : Bonux, Facteur et Clevermail

  45. Nicolas Hoizey

    Attention, comme indiqué maintenant en tête de billet, ce plugin existe maintenant en version améliorée pour SPIP 2, et est complètement documenté sur SPIP-Contrib !

  46. Bonjour,

    Je n’arrive pas à voir comment on force la version en html pour que chaque abonné soit automatiquement abonné à la version html . Pouvez-vous me conseiller ? Merci

Les commentaires sont désormais fermés.