CleverMail

CleverMail est un plugin permettant d’envoyer des lettres d’informations à des abonnés depuis SPIP. Issu au départ d’un développement libre complètement indépendant de SPIP, il a connu une première version pour SPIP 1.9 avant d’être complètement réécris pour SPIP 2.0.

Fonctionnalités

  • Gestion de multiples lettres, avec possibilité de les rassembler par catégories
  • Gestion des inscriptions en ligne et désinscriptions, les abonnés étant distincts des utilisateurs de SPIP
  • Possibilité de restreindre la liste des lettres proposées dans le formulaire d’abonnement
  • Abonnement au choix de l’utilisateur en version texte brut ou multipart simultané HTML + texte brut [1]
  • Possibilité de forcer la version dans le formulaire d’abonnement
  • Récupération des contenus HTML et texte brut à partir de deux squelettes ou deux URL, donc utilisation de squelettes SPIP dédiés voire même de contenus externes au site
  • Automatisation des envois avec une fréquence quotidienne, hebdomadaire (multiples jours de la semaine possibles) ou mensuelle
  • Automatisation des inscriptions depuis un fichier distant

Mise en place du plugin

Télécharger le paquet ci-joint et placer son contenu dans votre dossier plugins/.

Avant d’activer CleverMail dans l’interface de gestion des plugins, vous devrez installer les plugins Facteur et SPIP Bonux.

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

Une fois le plugin activé, le sous menu CleverMail est crée dans le menu Edition.

Le menu de CleverMail permet de :

  • Lister les lettres existantes
  • Créer une nouvelle lettre
  • Lister les abonnés
  • Ajouter des abonnés
  • Paramétrer le plugin

Tableau de bord

Le tableau de bord général de CleverMail affiche la liste des newsletters et leurs caractéristiques principales :

Différentes actions sont disponibles

  • Modifier : Permet de modifier une lettre
  • Supprimer : Une lettre peut être supprimer seulement si aucun abonné n’y est inscrit.
  • Nouveau Message

Création / Modification d’un lettre d’information

Une lettre se compose de la façon suivante :

  • Nom : Le nom de la lettre est important car c’est par leurs noms que les lettres sont triées et classées par catégorie. "01. Ma Catégorie/02. Ma Lettre"
"01. " Ordre de la catégorie (peut commencer à 00. )
"Ma Catégorie" Nom de la catégorie (= Nom du type de publication)
"/" séparateur sans espace entre le nom de la catégorie et le nom de la lettre
"02. " Numéro d’ordre de la lettre (peut commencer à 00. )
"Ma Lettre" Nom de la lettre
  • Description : Explication back office de la lettre, par défaut ce champ n’apparait pas en front office .
  • Modération :
    • Ouverte : tout le monde peut s’inscrire sans confirmation
    • E-mail : tout le monde peut s’inscrire après confirmation par e-mail
    • Fermée : personne ne peut s’inscrire, utile pour tester avant ouverture, ou fermer temporairement
  • E-mail du modérateur : (Champ obligatoire) Le modérateur reçoit un mail dès qu’un utilisateur confirme sont inscription à une lettre. Plusieurs adresses peuvent être saisies en les séparant par des virgules.
  • Préfixe : Préfixe les sujets des messages avec le nom de la lettre d’information (ex : [Rapport annuel] Confirmation de votre inscription). Pour le formulaire multiple, en cas d’inscription à plusieurs lettres en même temps, ce champ n’est pas pris en compte.
  • Sujet et description d’une inscription : Message d’inscription qui sera envoyé par mail à l’utilisateur en cas de modération par E-mail. En cas d’abonnement multiple le message envoyé pour toutes les lettres est celui paramétré dans la section « paramétrage »
  • Sujet et description d’une désinscription : Message de désinscription qui sera envoyé par mail à l’utilisateur.
  • Version HTML : Nom du squelette [2] ou URL de la page permettant d’obtenir le contenu de la lettre en version HTML.
  • Version texte brut : Nom du squelette [3] ou URL de la page permettant d’obtenir le contenu de la lettre en version texte brut.
  • Automatisation des envois : Les envois des lettres d’information peuvent être fait manuellement ou être automatisés
    • Envois quotidiens : Les dernières publications [4] seront envoyées tous les jours à partir de l’heure précisée dans le champ "Heure de création du message". Les publications publiées après cette heure seront envoyées le lendemain.
    • Envois hebdomadaires : Les dernières publications seront envoyées toutes les semaines le jour et à l’heure précisés dans les champs "Jour(s) de la semaine" et "Heure de création du message".
    • Envois mensuels : Les dernières publications seront envoyées tous les mois au jour et à l’heure précisés dans les champs "Jour du mois" et "Heure de création du message".
  • Mode d’abonnement : mode d’abonnement à la liste par défaut si aucun mode d’abonnement n’est précisé ou forcé à l’inscription.

Tableau de bord des abonnés

Le tableau de bord des abonnés affiche la liste des abonnés aux newsletters. Il y a une ligne par couple abonné/newletter.

La liste des abonnés peut être filtrée sur une partie de l’adresse e-mail (@example.com par exemple) et/ou sur le nom de la newsletter.

L’administrateur a la possibilité de modifier le mode d’inscription d’un abonné ou de le désinscrire d’une lettre. Dans ce cas l’abonné ne recevra pas de mail de désinscription.

Un lien « Vider les abonnements en attente depuis plus d’un mois » permet de supprimer de la base de données les demandes d’inscriptions en attente de validation depuis plus d’un mois.

Cette fonction nettoie également les adresses de type @example.com qui seraient par erreur [5] restées dans la table des abonnés aux newsletters.

Ajout d’abonnés

Des abonnés peuvent être ajoutés dans l’interface privé à partir d’un fichier CSV ou directement en saisissant les adresses e-mail dans le formulaire.

Dans le fichier ou dans la zone de saisie, mettre une adresse e-mail par ligne, ou séparer les adresses par des virgules ou points virgules.

Paramétrage

La section paramétrage contient les paramètres communs à toutes les lettres.

Les paramètres génériques sont les suivants :

  • E-mail administrateur : par défaut mail du webmestre de SPIP
  • E-mail expéditeur (from et reply-to) : par défaut mail du webmaster de SPIP
  • E-mail return path : par défaut mail du webmaster de SPIP
  • Nombre de messages par envoi : par défaut « 50 ». A chaque traitement de la tache planifiée 50 messages seront envoyés.
  • Sujet et description d’une inscription multiple : Message d’inscription qui sera envoyé par mail à l’utilisateur en cas d’inscription a plusieurs lettres en même temps.

Mécanisme de création et envoi des messages

Envoi automatique

Les messages automatiques sont envoyés via une tache planifiée. Chaque jour, la tache planifiée regarde s’il y a eu de nouvelles publications depuis le dernier envoi et si la date du prochain envoi est atteinte.

Exemple d’une lettre envoyée tous les 15 du mois :

  • Janvier : Nouvelle publication le 10 => 15 du mois => envoi
  • Février : pas de nouvelle publication => 15 du mois => pas d’envoi => nouvelle publication le 17 => envoi => nouvelle publication le 20 => pas d’envoi
  • Mars : pas de nouvelle publication => 15 du mois => envoi de la publication du 20 février

Envoi manuel

Les messages peuvent également être envoyés manuellement depuis le tableau de bord des lettres d’information.

Pour créer un nouveau message, cliquer sur le lien "nouveau message" d’une lettre.

Le lien « 1 message » permet d’accéder au tableau de bord des messages d’une lettre.

Ce tableau de bord permet de voir les messages par état : nouveau message, message en cours d’envoi et message envoyé.

Différentes actions sont disponibles sur les messages (selon leur état) :

  • Aperçu HTML : Visualisation de la lettre au format HTML, avant remplacement des balises de personnalisation
  • Aperçu texte : Visualisation de la lettre au format texte, avant remplacement des balises de personnalisation
  • Modifier : Modification du message qui sera envoyé
  • Supprimer : Suppression du message
  • Envoyer : Envoi du message, le message est déposé dans une file d’attente que le Facteur va dépiler au fur et à mesure de l’exécution du génie de SPIP. Le message en attente n’est plus modifiable ni supprimable.

Intégration au site public

La balise #FORMULAIRE_CLEVERMAIL permet d’afficher le formulaire par défaut des listes non filtrées par catégorie.

Il est possible de restreindre le formulaire d’abonnement à une newsletter en précisant l’id de la lettre :
#FORMULAIRE_CLEVERMAIL{1}

Il est aussi possible de restreindre le formulaire d’abonnement à un unique mode en précisant texte ou html :
#FORMULAIRE_CLEVERMAIL{0,html}

Il est enfin possible d’utiliser un formulaire avec des cases à cocher plutôt qu’une liste en passant box en troisième paramètre [6] :
#FORMULAIRE_CLEVERMAIL{0,html,box}

La balise #FORMULAIRE_CLEVERMAIL_MULTIPLE permet d’afficher le formulaire d’abonnement multiple filtrées par catégorie.

Support

En cas de bug ou problème particulier, merci de vérifier sur le Trac de la zone si un ticket existe déjà, et si nécessaire de créer un nouveau ticket avec le « component » "plugins/clevermail" et faire un commentaire ici-même pour signaler ce ticket.

Si vous avez des idées pour améliorer le plugin, même chemin, créez un nouveau ticket avec le « component » "plugins/clevermail" !

Si vous aimez ce plugin, et l’utilisez sur un site public, n’hésitez pas à le signaler sur sa fiche !

Notes

[1Attention, Lotus Notes n’aime pas...

[2CleverMail en propose un par défaut

[3CleverMail en propose aussi un par défaut

[4C’est à dire depuis l’envoi précédant.

[5Un bug depuis corrigé pouvait conduire à cette erreur

[6Le code impose pour l’instant de préciser les deux premiers paramètres, ce sera amélioré ultérieurement...

Discussion

195 discussions

  • 4

    Bonjour,

    il me semblait avoir déjà communiquer sur le problème que je rencontre avec le plugin Clevermail, mais en parcourant toutes les pages de cet article, impossible de remettre la main dessus...

    donc je vous fait par d’un soucis que je recontre constamment lors de l’envoi de mail : à la réception du message, le sujet ne s’affiche pas.
    Ce soucis est rencontré également lors de la réception de mail pré-dispo dans le plugin (clevermail_nouveautes etc.).

    J’utilise Spip version 2.1.8, Clevermail 2.5.2, Facteur 1.6.2, ces deux plugins ayant été mis à jour récemment sur mon site sans avoir pu corrigé le problème.

    J’ai décortiqué les fichiers du plugins générant les envois (genie/clevermail_queue_process) sans résultat en forçant la valeur de la variable subject par exemple...mais je ne cherche peut-être pas au bonne endroit...

    Quelqu’un a-t’il rencontré ce « bug » et su y remédier ?

    Merci à toute bonne âme charitable !
    a+

    • Je m’auto répond concernant mon dernier message.

      Le problème provient du plugin Facteur et de la configuration serveur car en effectuant un test avec ce plugin sur mon serveur distant cela me reproduit les mêmes erreurs (pas d’objet, pas de nom d’expéditeur), alors qu’en local tout fonctionne correctement.

      Je vous tiendrais au courant si je solutionne ce problème.

    • Ok voici un lien décrivant la solution : Solution si absence de sujet dans le mail envoyé via plugin Facteur

      après test ça semble fonctionner à merveille...

      ouffff, enfin je vais pouvoir exploiter à fond ce plugin ! :)

    • C’est donc un bug du Facteur ? Est-il signalé sur son forum ?

    • J’avais déjà posté un message pour signaler le bug et je viens d’y ajouter la solution.

      Merci encore pour le plugin !

    Répondre à ce message

  • 28

    Bon et bien moi un peu meme problem que les derniers messages,

    quand je click sur ’nouveau message’ et bien je tombe sur une page ’vide’ c’est pas une page blanche mais une page avec tout le backend spip et clever mail, mais rien dans la partie de droite :(

    Ce plugin a l’airsuper propre, j’aimerais bien le mettre en marche :)

    Des ideess pouquoi je tombe sur ce mur ?

    • arghhh est ce que ce plugin marche pour quelqu’un dans cette version ?

    • Quelle est « cette » version ?

    • Apres mon problem j’ai essayer de tout mettre a jour

      Donc maintenant j’utilise la derniere version de clevermail ’2.5.1 - stable’ et aussi la derniere version de spip 2.1.6

      Mais j’ai toujours le problem :(

    • apparement mon problem est que le nouveau message ne se cree pas dans la table ’spip_cm_posts’

      Je click bien sur le lien ’nouveau message’ dans la page ’ecrire/ ?exec=clevermail_lists’

      mais ma table reste vide

      une idee ?

    • Ci dessous le code correspondant au lien ’nouveau message’..si ca peu aider..

      <form action="http://www.pcawt.com/ecrire/?exec=clevermail_lists&action=clevermail_post_create&arg=1&hash=c8d125f776130c424dcb993541f178856150bebb&redirect=http%3A%2F%2Fwww.pcawt.com%2Fecrire%2F%3Fexec%3Dclevermail_posts%26amp%3Blst_id%3D1" method="post" class="bouton_action_post ajax"><div><input type="hidden" value="clevermail_lists" name="exec">
      <input type="hidden" value="clevermail_post_create" name="action">
      <input type="hidden" value="1" name="arg">
      <input type="hidden" value="c8d125f776130c424dcb993541f178856150bebb" name="hash">
      <input type="hidden" value="http://www.pcawt.com/ecrire/?exec=clevermail_posts&lst_id=1" name="redirect"><button class="submit" type="submit">nouveau message</button></div></form>
    • je me reponds...

      pas encore en place mais voila le resultat de mes recherches

      Je suis remonté dans le code et j’ai trouvé où ça cloche. à un moment du process on va chercher le contenu de deux URLs, qui sont censés donner un contenu par défaut de lettre. Ces deux urls sont en fait des appels aux templates clevermail_nouveautes_html.html et clevermail_nouveautes_text.html. Ces deux templates se trouvent à la racine du répertoire du plugin clevermail.

      Ces deux templates contiennent des boucles, qui quand tu les lis se contentent de ressortir le contenu des 20 derniers articles du site, mais pour une raison qui m’échappe (un mauvais critère ?), cette boucle ne ressort rien. Or clevermail veut un contenu, n’importe lequel mais surtout pas une chaine vide quand il interroge ces deux templates.

      IL SERAIT BIEN DE DONNER UN MESSAGE D’ERREURE SI CES TEMPlATE NE RENVOI RIEN, ca aiderais bien :)

    • Les squelettes fournis par défaut ne prennent non pas « le contenu des 20 derniers articles du site », mais plus précisément « le contenu des articles publiés sur le site depuis l’envoi de lettre précédent, au maximum 20 », c’est une nuance extrêmement importante.

      Si tu tentes un second envoi sans qu’aucun article n’ai été publié, le squelette renvoi un contenu vide, et aucune lettre n’est créée puisqu’elle n’aurait aucun intérêt.

      C’est visible dans le log.

    • Bonjour

      Sur ce site http://skiclub.eybens.free.fr/, j’ai le même souci : Pas de possibilité de créer un nouveau message. Il y a pourtant bien de nouveaux articles publiés depuis la création de la liste.

      Si quelqu’un trouve une solution... merci

      Pierre N.

    • Qu’as-tu dans le log ?

    • Jan 11 13:24:21 195.221.234.114 (pid 5540) Modification de la liste « Adhérents » (id = 1)
      Jan 11 13:43:18 195.221.234.114 (pid 9538) Création d'un message dans la liste « Adhérents » (id=1) impossible, contenu vide à http://skiclub.eybens.free.fr/spip.php?page=clevermail_nouveautes_html&date=1970-01-02&lst_id=1 et http://skiclub.eybens.free.fr/spip.php?page=clevermail_nouveautes_text&date=1970-01-02&lst_id=1
      Jan 12 09:55:40 195.221.234.114 (pid 12573) Création d'un message dans la liste « Adhérents » (id=1) impossible, contenu vide à http://skiclub.eybens.free.fr/spip.php?page=clevermail_nouveautes_html&date=1970-01-02&lst_id=1 et http://skiclub.eybens.free.fr/spip.php?page=clevermail_nouveautes_text&date=1970-01-02&lst_id=1
    • Les dates sont sur 1970 mais les articles sont bien datés de 2011 pourtant

    • Effectivement, ce n’est pourtant pas vide :
      http://skiclub.eybens.free.fr/spip.php?page=clevermail_nouveautes_html&date=1970-01-02&lst_id=1

      Est-ce que par hasard Free empêcherait les requêtes HTTP du serveur vers lui-même ?

    • Ben pour le savoir, faut essayer sur un autre spip sur free. je le fais et te tiens au courant. Merci d’avoir regardé.

      Pierre

    • je viens de tester sur un autre site spip chez free. Tout se passe bien avec un seul article créé.

    • Bonjour

      J’ai le même problème. Une date de 1970 si je passe par la prévisualisation du script mais si je fais tourner la page sans e script tout est ok. Une idée ?

    • Problème non résolu pour moi. Mais peut-être une piste ? j’ai lu sur un autre forum un problème qui ressemblait à propos de dates dans le plugin agenda et qui semblait être lié à la fonction strotime. Or, cette fonction est utilisées dans le fichier clevermail_nouveautes_html qui génère le message d’erreur.

      Si ça peut aider ?

    • Bonjour

      Toujours pas fonctionnel chez moi. Quelqu’un a-t-il identifié et résolu le problème ?

      merci

    • Pour ma part avec la version 2.5.2 de Clever mail, Facteur 1.6.2, Bonux 2.2.17 (j’ai aussi d’autres plugins mais le problème reste le même avec les autres activés ou non) sur un spip 2.1.8, mon problème est le suivant : à chaque création d’un nouveau message je tombe sur une page 404.
      Ce qui est normale car l’url générée est de type :

      /ecrire/ecrire/?exec=clevermail_posts&lst_id=1

      Alors évidemment, j’ai essayé sur un spip tout neuf tout propre sans autres plugins et le problème est strictement le même.

      Cependant le message est bien crée quand on retourne sur la page précédente.

      J’ai farfouillé un peu dans les fichiers qui génèrent l’url et j’avoue que je n’ai pas trouvé grand chose qui pourrait corrigé cela...

    • Zut, il me semblait que cela avait été corrigé récemment. Je ne sais pas d’où ça vient, sans doute un changement dans SPIP.

    • En principe, avec la dernière version de CM + la dernière version de Facteur (l’avant dernière induisait le bug du double ecrire/ paraît-il), ça devrait marcher.

    • Zut, il me semblait que cela avait été corrigé récemment. Je ne sais pas d’où ça vient, sans doute un changement dans SPIP.

      A priori avec une revision de spip 2.1.8 plus récente (testé sur la 17242, ma version de travail étant la 16966) le problème du double écrire n’apparaît plus.

    • Bonjour,

      philooo et L’instit, voavez-vous trouvé la solution à votre problème ?
      J’ai le même souci avec SPIP 2.0.10, CleverMail 2.5.2 et Facteur 1.6.2.
      Je crée un nouvel article, je crée un nouveau message Clevermail, résultat : écran vide.
      Dans le log : « Création d’un message dans la liste ... impossible, contenu vide »
      J’ai également les messages :
      connexion vers http://monsite.com/spip.php?page=clevermail_nouveautes_text&date=1970-01-02&lst_id=1 par simple fopen
      ECHEC init_http http://monsite.com/spip.php?{{page=clevermail_nouveautes_text&date=1970-01-02&lst_id=1}}

      Si vous avez trouvé la solution, je suis preneur.
      Merci.
      Eric

    • HELP !
      Quelqu’un a-t-il trouvé la solution au problème de message « vide » dans le back-office, c’est-à-dire qui ne trouve pas les nouvelles news...??
      Merci de votre aide (si quelqu’un est encore sur ce forum...)

    • le problem est qu’il n’y a pas de message d’erreure dasn clevermail donc la page vide veut dire qu’il y a une erruere.

      si je me rappel bien il faut que le message ne soit pas vide

      >>>>> le template newsletter doit retourne une page non vide. donc si par exemple dans le tempalte de newsletter votre boucle ne retourne rien -> boum page blanche

      >>>>> pareil si il n’y a pas d’abonne -> page blanche.

    • Merci Philoo pour votre réponse.

      qu’est-ce que le template « newsletter » ?
      quand j’ouvre l’adresse suivante, j’ai bien 6 articles qui s’affichent :

      monsite/spip.php ?page=clevermail_nouveautes_html&date=2011-03-01&lst_id=1

      Par ailleurs j’ai renseigné un abonné pour mes tests.

      Merci

    • quand je dis ’template newsletter’ je voulais dire le squelette qui est choisis pour la newsletter

      par defaut je crois que c’est ’clevermail_nouveautes_html’

      assure toi que ce template renvoi une page ’non-vide’

      pour cela va sur tonsite.tld/spip.php ?page=clevermail_nouveautes_html

      De toute facon si tu as une page vide c’est qu’il y a un truc qui bloque :) pour moi c’etait mon squelette qui ne renvoyais rien car il n’y avait pas de nouveau articles.

    • Merci Philoo pour l’aide.

      Quand je vais sur l’adresse :
      /spip.php ?page=clevermail_nouveautes_html
      page vide

      Quand je vais sur l’adresse :
      http://www.kerneos.com/spip.php?page=clevermail_nouveautes_html&date=2011-03-01&lst_id=1
      mes 6 articles s’affichent...

    • J’ai du mal à suivre l’enchaînement dans cette discussion, j’ai l’impression que plusieurs problèmes sont mélangés.

      Pouvez-vous, si vous avez toujours un problème, créer un nouveau fil de discussion ?

      Merci.

    Répondre à ce message

  • 6

    Bonjour à tous,

    merci pour ce plugin que je souhaite utiliser à la place de SpipListe.
    Cependant, je n’arrives pas à faire apparaître le site public via #FORMULAIRE_CLEVERMAIL inséré dans le squelette.
    Rien n’apparaît juste un espace vide. J’ai essayant en spécifiant l’id, cela ne change rien.

    J’utilise zpip et un theme perso.
    Ai-je raté quelque chose, existe t-il une manip spéciale ?

    Merci ;-)

    • re,

      toujours pas trouvé de solution. Il est clair que j’ai du rater quelque chose mais je ne sais ou pas ou. J’ai essayé d’insérer le #FORMULAIRE_CLEVERMAIL dans le squelette, ou dans l’article même.

      a bon entendeur ;-)

    • Florian

      Bonjour,

      J’ai exactement le même problème.

      J’ai pu constaté dans le code source que #FORMULAIRE_CLEVERMAIL avait été remplacé par

      <div class="formulaire_spip formulaire_editer formulaire_clevermail" id="formulaire_clevermail-new">
      </div>

      sauf que je n’ai pas d’appel à un CSS pouvant contenir la définition de « formulaire_clevermail-new »...

      Si quelqu’un a une piste

      Merci

    • Avez-vous bien créé une « lettre d’information » depuis l’interface ?

    • J’avais le même problème.

      Il faut savoir qu’une liste avec une modération : fermée n’apparaîtra pas dans l’interface publique car fermée.

    • Florian

      Merci beaucoup ! ça marche.

      J’avais bien créé une lettre d’information mais la modération était fermée.

      Pour le coup, je ne suis pas sur de bien percevoir le principe de cette modération qui peut être « ouverte », « email » ou « fermée »

    • le problem est qu’il n’y a pas de message d’erreure dasn clevermail donc la page vide veut dire qu’il y a une erruere.

      si je me rappel bien il faut que le message ne soit pas vide

      >>>>> le template newsletter doit retourne une page non vide. donc si par exemple dans le tempalte de newsletter votre boucle ne retourne rien -> boum page blanche

      >>>>> pareil si il n’y a pas d’abonne -> page blanche.

    Répondre à ce message

  • 1

    Bonjour,
    Juste pour signaler un petit bug : quand je clique sur « nouveau message » je suis renvoyé vers
    http://www.exemple.com/ecrire/ecrire/?exec=clevermail_posts&lst_id=1

    avec 2x ecrire dans l’url, ce qui amène sur la 404 publique.

    Voila, et merci pour ce plugin !

    jo

    • juste pour préciser que c’est avec
      SPIP 2.1.8 [16966]
      CleverMail pour SPIP 2.0 (v2.5.2) Rév. 43870
      Facteur (v1.6.2) Rév. 44914

      donc à priori versions à jour

    Répondre à ce message

  • Bonjour,
    Comment modifier la largeur du formulaire d’édition d’un nouveau message ? (zones contenu texte et html
    Dans ’clevermail_post_edit.html’, jai modifié la largeur des colonnes et le nb de lignes du contenu html et du contenu texte mais seul le nb de lignes change. Or, je souhaiterais aussi agrandir la largeur des zones.
    Merci d’avance

    Répondre à ce message

  • 2

    Bonjour,
    Le lien : « Si vous ne visualisez pas cet email, lisez-le sur le site » renvoie vers mon site avec la newsletter en ligne. Mais l’interface graphique est celle d’un site spip par défaut (liens violet/orange). Or, pour mon site, j’ai ajouté un plugin pour l’interface graphique. Est-il possible d’afficher la newsletter en ligne avec la même charte que celle de mon site ?
    Merci par avance,
    Cordialement

    • Normalement, la newsletter doit avoir la même tête sur le site que dans le mail.

      Si tu veux l’afficher plutôt comme le site, tu peux utiliser les boucles sur les tables du plugin.

    • Merci de votre réponse.
      Un autre question svp : quand on clique sur le lien : « Si vous ne visualisez pas cet email, lisez-le sur le site » une page HTML s’affiche avec le contenu de l’email. Ok, mais peut-on mettre un filtre pour que le lien « Si vous ne visualisez pas cet email, lisez-le sur le site » ne s’affiche pas à nouveau sur la page HTML car il est totalement inutile sur la page.
      Merci d’avance
      Cordialement

    Répondre à ce message

  • 5
    zephdesign

    j’ai soucis avec le fichier clevermail_lettre.html que j’ai modifier pour qui est la même tête que mon site donc ça donne ça :

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR">
    <head>
    <title>Lettres d'information - [(#NOM_SITE_SPIP|textebrut)]</title>
    [<meta name="description" content="(#DESCRIPTIF_SITE_SPIP|couper{150}|attribut_html)" />]
    <meta name="robots" content="none" />
    <INCLURE{fond=inc-head}>
    </head>
    
    <body class="page_lettre">
    <BOUCLE_css(RUBRIQUES){id_rubrique=1}>
    	<BOUCLE_id_page(MOTS){id_rubrique}{id_groupe=5}>
            		#SET{macouleur,#TITRE}
    				</BOUCLE_id_page>
    <div [id="(#GET{macouleur})"]>
    </BOUCLE_css>
    	
    	[(#REM) Entete de la page + titre du site ]
    	<INCLURE{fond=inc-entete, secteur=1} {id_rubrique=1}>
    
    <div id="contenaire">
    <div id="col_gauche">
    	<INCLURE{fond=inc-menu} {id_rubrique=1}>
    	<INCLURE{fond=inc-newsletter}>
    </div> <!-- fin col_gauche-->   
    <div id="contenu">
    <div id="hierarchie">
     <strong class="noir">Vous êtes ici :</strong><a href="#URL_SITE_SPIP/"><:accueil_site:></a> &gt; <strong class="on">Lettres d'information</strong></div>
        
            <div class="cartouche">
                <h1>Lettres d'information</h1>
            </div>
            
            <BOUCLE_lid(CM_POSTS){pst_id=#ENV{id}}>
    		[<h2>(#PST_HTML|extraire{title})</h2>]
    		<div class="lettre">
    		[(#PST_HTML|extraire{body})]
    		</div>
    		</BOUCLE_lid>
    
    
     </div><!-- fin contenu-->
    <div class="clear"><!-- bug --></div>
    </div><!-- fin contenaire-->
    [(#REM) Pied de page ]
    
    	<INCLURE{fond=inc-pied, secteur=1}>
    </div><!-- fin page_CEREMH-->
    
    </body>
    </html>

    là c’est mon fichier clevermail_nouveautes_html.html modifier

    #CACHE{0}#HTTP_HEADER{Content-type: text/html; charset=#CHARSET}
    <B_articles>#SET{news,''}
    <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'><html>
    <head><title>[(#ENV{date}|strtotime|=={82800}|?{#SET{news,"Les nouveautés n°1"},#SET{news,Les nouveautés depuis le #ENV{date}|affdate}})][(#GET{news}|textebrut)]</title></head>
    
    <body style="background-color:#e0ded9; font-size:80%; margin:0px; padding:0px; font-family:Arial, Helvetica, sans-serif;">
    <div style="width:650px; background:#FFFFFF; margin:0 auto;">
    <p style="font-size:1.1em; text-align:center; margin:0; padding: 5px 0 10px 0;"><a  style="color:#aeaeae" href="@@URL_LETTRE@@" title="<:clevermail:lire_en_ligne:>"><:clevermail:mauvais_affichage:></a>.</p>
    
    <div style="width:100%; margin:0; padding:0 0 10px 0; background-color:#f2f2f2;">
    <div style="width:316px; margin:10px 0 10px 8px; float:left;" >
    <a href="#URL_SITE_SPIP"><img style="border:none" src="#URL_SITE_SPIP/#CHEMIN{images/newsletter-logo.png}" width="316" height="107" alt="#NOM_SITE_SPIP" title="#NOM_SITE_SPIP" /></a>
    </div>
    <div style=" width:300px;  float:right; margin:10px 8px 10px 0; height:107px; position:relative;">
    <h1 style="color:#000000; text-align:right; margin:0;position: absolute;
    bottom: 0px; right:0px; font-size:1.5em">@@NOM_LETTRE@@</h1>
    </div>
    <div style="clear:both;"><!--bug--></div>
    </div>
    <div>@@DESCRIPTION@@</div>
    <BOUCLE_articles(ARTICLES) {!titre_mot=exclu}{age_relatif<=0}{par date}{inverse}{0,20}>
    </BOUCLE_articles>
    <div style=" width:100%; background:#fff url(#URL_SITE_SPIP/#CHEMIN{images/newsletter-pied.gif}) bottom left scroll no-repeat; padding:10px 0 20px 0">
    <B_news_actu>
    <div style="width:630px; margin:10px auto">
    <h2 style=" width:355px; background:#fff url(#URL_SITE_SPIP/#CHEMIN{images/newsletter_gh2.gif}) top left scroll no-repeat; margin:0; padding:0px 0px 3px 20px; font-size:1.4em; color:#FFF;">Les actualités</h2>
    <div style="background-color:#eeeeee; padding:5px">
    
    <div style="margin:0px; background-color:#FFFFFF;">
    <div class="texte">
    
    <ul style=" list-style-type:none; margin:0; padding:0; ">
    <BOUCLE_news_actu(ARTICLES) {titre_mot=news_actualites}{age_relatif<=0}{par date}{inverse}{0,6}>
    <li style="width:300px; display: inline-block; margin:5px 0 2px 5px;"><h3 style="padding:0; margin:0px 0 5px 0; font-size:1.06em"><a href="[(#URL_ARTICLE|url_absolue)]" style="[(#ID_RUBRIQUE|=={19}|?{color:#0074b4;, color:#ff7000;})]">#TITRE</a></h3>
    <span style=" margin:5px 0 3px 0;"><strong>Date de publication :</strong> [(#DATE|affdate)]</span>
    [<p style="display:block; margin-top:5px;">(#TEXTE|couper{110})</p>]
    </li>
    </BOUCLE_news_actu>
    </ul>
    
    
    </div>
    </div>
    
    </div>
    </div>
    </B_news_actu>
    <BOUCLE_affichedatef(EVENEMENTS) {id_rubrique IN 18,50}>
            		#SET{affichedate,(#DATE_DEBUT|Agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE})}
    				</BOUCLE_affichedatef>
    <B_news_formations>
    <div style="width:310px; margin:10px 0 10px 8px; float:left;">
    <h2 style=" width:205px; background:#fff url(#URL_SITE_SPIP/#CHEMIN{images/newsletter_ph2.gif})  top left scroll no-repeat; margin:0; padding:0px 0px 3px 20px; font-size:1.4em; color:#FFF;">Les formations</h2>
    <div style="background-color:#eeeeee; padding:5px">
    <div style="margin:0px; background-color:#FFFFFF;">
    <div class="texte">
    <ul style=" list-style-type:none; margin:0; padding:5px; ">
    <BOUCLE_news_formations(ARTICLES){id_rubrique IN 18,50} {titre_mot=news_formations}{age_relatif<=0}{par date}{inverse}{0,2}>
    <li style=" margin:0px 0 5px 0;"><h3 style="padding:0; margin:0px 0 5px 0; font-size:1.06em"><a href="[(#URL_ARTICLE|url_absolue)]" style="[(#ID_RUBRIQUE|=={19}|?{color:#0074b4;, color:#ff7000;})]">#TITRE</a></h3>
    <span style=" margin:5px 0 3px 0;"><strong>#GET{affichedate}</strong></span>
    [<p style="display:block; margin-top:5px;">(#TEXTE|couper{110})</p>]
    </li>
    </BOUCLE_news_formations>
    </ul>
    
    </div>
    </div>
    
    </div>
    </div>
    </B_news_formations>
    
    <BOUCLE_affichedatec(EVENEMENTS) {id_rubrique=11}>
            		#SET{affichedate,(#DATE_DEBUT|Agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE})}
    				</BOUCLE_affichedatec>
    <B_news_colloques>
    <div style="width:310px; margin:10px 8px 10px 0px; float:right;">
    <h2 style=" width:205px; background:#fff url(#CHEMIN{images/newsletter_ph2.gif})  top left scroll no-repeat; margin:0; padding:0px 0px 3px 20px; font-size:1.4em; color:#FFF;">Les colloques</h2>
    <div style="background-color:#eeeeee; padding:5px">
    	
    <div style="margin:0px; background-color:#FFFFFF;">
    <div class="texte">
    <ul style=" list-style-type:none; margin:0; padding:5px; ">
    <BOUCLE_news_colloques(ARTICLES) {id_rubrique=11}{titre_mot=news_colloques}{age_relatif<=0}{par date}{inverse}{0,2}>
    <li style=" margin:0px 0 5px 0;"><h3 style="padding:0; margin:0px 0 5px 0; font-size:1.06em"><a href="[(#URL_ARTICLE|url_absolue)]" style="color:#939393;">#TITRE</a></h3>
    <span style=" margin:5px 0 3px 0;"><strong>#GET{affichedate}</strong></span>
    [<p style="display:block; margin-top:5px;">(#TEXTE|couper{110})</p>]
    </li>
    </BOUCLE_news_colloques>
    </ul>
    
    </div>
    </div>
    
    </div>
    </div>
    </B_news_colloques>
    
    <div style="clear:both;"><!--bug--></div>
    </div>
    <div style="margin:0; padding:5px 0; width:100%">
    <p style="font-size:1.1em; text-align:center; margin:0; padding: 5px 0 0 0;"><a style="color:#aeaeae" href="@@URL_DESINSCRIPTION@@">Cliquez ici pour vous désinscrire</a></p>
    </div>
    
    </div>
    </body>
    </html>
    </B_articles>

    Quand je met pas fichier clevermail_lettre_fonctions.php dans mon dossier squelette, le fichier clevermail_lettre.html m’affiche en double mon e-mail une fois mal et l’autre bien et il met un mesaage d’erreur : 2 Erreur(s) dans le squelette
    1 Filtre extraire non défini squelettes/clevermail_lettre.html _lid 35
    2 Filtre extraire non défini squelettes/clevermail_lettre.html _lid 37

    Et quand je met fichier clevermail_lettre_fonctions.php dans mon dossier squelette il m’affiche plus rien.

    • zephdesign

      penser a recopier le fichier _CLEVERMAIL_LETTRE_EN_LIGNE_fonctions.php ou placer la fonction extraire dans le fichier de fonction. il ou se fichier ?

    • Je n’ai pas bien compris ce que tu cherches à faire. Tu as deux squelettes HTML pour une seule newsletter ?

    • zephdesign

      J’ai identifier mon problème c’est le filtre |extraire qui ne marche pas comme on est dans une boucle, il m’affiche 2 fois la même chose parce que y a 2 fois #PST_HTML et qu’il prend pas compte le filtre |extraire .

              <BOUCLE_lid(CM_POSTS){pst_id=#ENV{id}}>
      		[<h2>(#PST_HTML|extraire{title})</h2>]
      		<div class="lettre">
      		[(#PST_HTML|extraire{body})]
      		</div>
      		</BOUCLE_lid>
    • zephdesign

      Je n’ai pas bien compris ce que tu cherches à faire. Tu as deux squelettes HTML pour une seule newsletter ?

      clevermail_lettre.html : c’est pour visualiser le mail au qu’on voit mal sur ça boite mail
      clevermail_nouveautes_html.html c’est la newsletter qui est envoyer

    • Bon, après quelques heures de lecture, tests, etc. J’ai atteint mon niveau d’incompétence suffisemment souvent pour tenter de faire un récapitulatif :-)

      -  le squelette « nouveautes » de zephdesign passe bien à l’envoi de la lettre et il se retrouve en base.
      -  à mon avis, c’est au moment de l’affichage en ligne via clevermail_lettre.html qu’il se retrouve avec son souci. Si je comprends bien ce qui se pase, le filtre |extraire est appelé deux fois.

      • la première fois sur « title », il filtre quasi tout mais ne se limite pas au title => affichage d’une lettre presque vide
      • la deuxième fois sur « body », il semble ne rien faire => affichage de la lettre telle qu’en base, d’où le doublon

      Le problème semble donc bien venir du filtre |extraire et pour ce que je comprends c’est que ce filtre ne prend que des balises sans style. Mais bon les regexp, c’est pas ma tasse de thé. Avec une lettre simple, sans style sur body, ça passe mieux en tous cas.

      A noter aussi : si on crée un autre squelette de lettre (bidule.html), il lui faut le bidule_fonctions.php associé (calqué sur clevermail_lettre_fonctions.php), sinon le filtre n’est pas disponible.

    Répondre à ce message

  • 6
    zephdesign

    J’ai installer clevermail sur spip 2.1.8 il m’a dis ça :
    Installation du plugin CleverMail pour SPIP 2.0

    Warning : Invalid argument supplied for foreach() in /home4/h/monsite/www/site/ecrire/req/mysql.php on line 646
    OK

    • zephdesign

      Impossible de créer un nouveau message, quand je clic sur nouveau message il m’envoie sur ?exec=clevermail_posts&lst_id=1 donc je vois mon premier message c’est tout.

    • Bonjour, exactement meme pb / msg a l’install ce jour sur serveur gandi, tout est pourtant correct en local.

      Une idée du pourquoi comment régler ce pb ?

      Merci par avance

    • Exactement le pb chez moi (spip 2.1.8 et clevermail pour spip 2). Si quelqu’un a une idée...

    • Bonjour, malgré ce message d’erreur à l’installation, tout semble bien fonctionner.
      Merci pour ce plugin !

    • J’ai constaté aussi l’erreur à l’installation, mais je ne sais pas d’où elle vient, et le plugin fonctionne tout de même.

    • Ha ? Ben, je viens de l’installer avec STEP j’ai pas eu d’erreur... Fonctionnalité insoupçonnée de STEP ? :-p

    Répondre à ce message

  • 4

    Bonjour,

    Je rencontre un problème dans l’utilisation du squelette « clevermail_nouveautes_html.html ».

    Voici le cheminement :

    • le mercredi 2 février à 10h00, je publie un article dans mon site,
    • à 11h00 je créé un nouveau message depuis la page Clevermail « Liste des lettres d’information » pour préparer un envoi
    • à 12h00 j’effectue l’envoi.
    • à 16h00 je publie un nouvel article,
    • le jeudi 3 février, je créé un nouveau message depuis la page Clevermail « Liste des lettres d’information » pour préparer un autre envoi
    • quand je prévisualise le message en question, il contient les 2 articles, alors que la veille, j’ai déjà envoyé une lettre pour annoncer les nouveautés, qui contenait le premier article, je devrais donc avoir uniquement le deuxième article dans cette lettre, et pas retrouver aussi le premier.

    Est-ce que ce cheminement est correct, ou ai-je manqué une étape ?

    J’ai besoin de pouvoir produire les bons contenus de ma lettre.
    J’ai donc modifié le squelette « clevermail_nouveautes_html.html ».

    Ma version modifiée est la suivante

    #CACHE{0}#HTTP_HEADER{Content-type: text/html; charset=#CHARSET}
    <BOUCLE_cm(CM_POSTS){lst_id}{!par pst_date_sent}{0,1}>#SET{date_envoi,#PST_DATE_SENT|cm_date|formater_date|concat{' ',#PST_DATE_SENT|cm_heure}|concat{':00'}}</BOUCLE_cm>#SET{date_envoi,'1970-01-02 00:00:00'}<//B_cm><B_articles>#SET{news,''}
    <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'><html>
    <head><title>[(#GET{date_envoi}|strtotime|=={82800}|?{#SET{news,"Les nouveautés n°1"},#SET{news,Les nouveautés depuis le #GET{date_envoi}|affdate}})][(#GET{news}|textebrut)]</title></head>
    <body>
    <h1>@@NOM_LETTRE@@</h1>
    
    <div>@@DESCRIPTION@@</div>
    <p><a href="@@URL_LETTRE@@" title="<:clevermail:lire_en_ligne:>"><:clevermail:mauvais_affichage:></a>.</p>
    <BOUCLE_articles(ARTICLES){date > #GET{date_envoi}}{par date}{inverse}{0,20}>
    [<h2><a href="[(#URL_ARTICLE|url_absolue)]">(#TITRE)</a></h2>]
    <p>[par (#LESAUTEURS|textebrut)][ le (#DATE|affdate)]</p>
    [<div>
    (#CHAPO|sinon{#INTRODUCTION})</div>]
    </BOUCLE_articles>
    
    <p>Cliquez sur le lien suivant pour vous désinscrire : <a href="@@URL_DESINSCRIPTION@@">@@URL_DESINSCRIPTION@@</a></p>
    </body></html>
    </B_articles>
    • Il y a donc une boucle qui repère le dernier envoi effectué par la liste, et qui stocke la date et l’heure. Si il n’y a aucun résultat, cela signifie qu’aucun message n’a encore été envoyé pour cette liste et dans ce cas, on fixe la date au 1970-01-02
    • Le filtre « formater_date » permet de transformer une date du type 02/02/2011 en 2011-02-02.
    • Je remplace les #ENV{date} par #GET{date_envoi}
    • Puis dans la boucle je remplace {age_relatif<=0} par {date > #GET{date_envoi}} pour obtenir les nouveaux articles, en tenant compte de l’heure, depuis le dernier envoi.

    Cette version modifiée me permet de ne plus rencontrer le problème décrit au début du message.
    Est-ce que cela vous semble correct ? Cette modification ne pourrait-elle pas être intégrée dans Clevermail ?

    Merci de vos retours.

    • As-tu essayé d’ajouter l’heure au paramètre date qui existait déjà, plutôt que tout modifier ?

    • Merci pour ce retour.

      Je veux bien ajouter l’heure, mais je le fais a quel endroit ?
      L’usage que je décris ici, est celui fourni en standard par le plugin. Je pense que l’heure n’est pas transmise lors de la création d’un nouveau message.

      C’est pour cela que j’ai juste modifié le patron, cela me permet de garantir que le nouvel envoi ne contiendra que les nouveaux articles, et ca marche depuis 15 jours !

    • En fait, j’ai essayé d’ajouter l’heure au critère date passé au squelette, mais le filtre age_relatif ne la prend pas en compte... :-(

    • C’est pour cela que j’ai contourné avec cette modification, sinon le problème sur l’envoi quotidien se pose, et on se retrouve a envoyer 2 fois le même article d’un jour sur l’autre.

    Répondre à ce message

  • 1

    Bonjour,

    Existe t-il un truc magique pour que votre plugin envoie les mails automatiquement sans être obligé de visiter le site.

    Il semblerait que les envoie ne se font qu’à chaque visite sur le site.

    J’ai fait un envoi il y’a plus de 4 heures et je n’ai que 11 mails qui ont été envoyé et j’en ai plus de 20.000 a envoyer.

    Cette liste fonctionnait auparavant sous spip-liste et les envoie semblait ne pas poser de problème.

    l’envoi est réglé à 50.

    D’avance merci.

    • Je me réponds ;)

      En fait le truc magique c’est de ne pas faire confiance à ovh qui assure au client qu’il n’est plus en 60gp alors que si et donc php4.

      Donc passage en php5 avec l’instruction (SetEnv PHP_VER 5) via le .htaccess et tout rentre dans l’ordre.

      Donc toutes mes excuses ;)

      Et merci pour ce plugin.

    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