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

  • 1
    merluche

    J’ai le même problème que décrit par d’autres ici. Une fois que j’ai configuré mes listes.
    Le lien « nouveau message » ne renvoie sur rien, ou plutôt il renvoie sur la même page /ecrire/ ?exec=clevermail.
    Au niveau de la log apache, on voit deux requêtes GET émises par le serveur apache vers /spip.php ?page=clevermail_nouveautes_html&date=1970-01-02

    Puis une requête POST émise depuis le browser sur /ecrire/ ?exec=clevermail&action=clevermail_post_create&arg=1&hash=90d316f49f52ba31481edbb81fa54136&redirect=.%2F%3Fexec%3Dclevermail
    suivie de 2 GET, un vers /ecrire/ ?exec=clevermail et un autre vers /ecrire/ ?exec=clevermail&action=cron

    Sur le navigateur, on a la page initiale qui s’affiche, sans le moindre message d’erreur.

    Je suis sur un SPIP 2.0.9

    Quelqu’un saurait me dire quoi faire ?

    Répondre à ce message

  • 36
    Jean-Michel.R

    Bonsoir,

    Nous tentons d’utiliser CleverMail, mais les messages ne partent pas !
    Dans les logs on a toujours des messages du genre :

    Apr 09 23:39:47 152.77.24.38 (pid 19859) Création d’un message dans la liste « 02.essai/01.Lettre info  » (id=2) impossible, contenu vide àhttp://asulgv.free.fr/spip.php?page=clevermail_nouveautes_html&date=1970-01-02 et http://asulgv.free.fr/spip.php?page=clevermail_nouveautes_text&date=1970-01-02

    Alors que les URL ne présentent pas de contenu vide !

    Une idée ?

    Merci

    • J’ai le même problème depuis dimanche 11 avril alors que jusqu’à présent tout fonctionnait bien.

      Quand j’appelle via un navigateur l’url de la lettre info paramétrée dans Clevermail j’ai bien un résultat à l’écran. Quand cette même adresse est appelée par le traitement de la queue de création des messages (queuepostcreate....), j’ai une page html qui fait 1 octet et qui me génère une anomalie dans la log.

      Apparemment la fonction « recuperer_page » de SPIP aurait un problème car je ne comprends pas pourquoi cela viendrait du plugin Clevermail.

      Si quelqu’un a une idée avec mon complément d’information, ce serait super.

      Merci d’avance.

    • Moi je ne comprends pas pourquoi ça viendrait de la fonction recuperer_page de SPIP qui est éprouvée sur des milliers de sites pour faire de la syndication, et la récupération de paquets zip, de documents distants ...

      Tu vois, si je devais parier, je ne mettrai pas un penny sur elle ... :p

    • La différence avec les autres usages de cette même fonction, c’est que dans le cas de CleverMail, le site s’interroge lui-même, ce qui est parfois empêché par les firewall et/ou proxy (c’est du vécu à plusieurs reprises). Du coup, la syndication passe bien, mais CleverMail n’arrive jamais à récupérer des contenus...

      Après, il y a peut-être d’autres soucis dans le plugin, je dis pas, mais j’en ai plusieurs qui tournent sans problème.

    • Je ne pense pas non plus que le problème vienne directement de ’recuperer_page’.

      En tous cas, techniquement c’est cette fonction qui renvoit 0 octet lors de l’appel d’une url alors que cette url appelée séparemment renvoit du contenu.

      J’ai fait un test en modifiant le contenu de ma page html à envoyer, si elle ne contient que les liens d’inscription ou desinscription, ’recuperer page’ fonctionne, dès lors que j’ajoute les titres des brèves (je l’utilise pour des breves exclusivement) ou le contenu de la brève, la fonction ne renvoit rien.

      J’ai pense à un caractère qui serait refusé ou qui ferait planter la fonction mais je ne vois rien.

      Sauf si quelqu’un trouve la solution avant ce soir, je vais mettre la page de Clevermail par défaut car je dois avouer que j’ai pas mal pataugé pour mettre au point ma page au début, si cela fonctionne, je reporterais mes modifications à nouveau.

    • Quand tu fais ton appel manuel, tu passes bien en paramètre la date de l’envoi précédent, comme c’est fait par le plugin pour la génération de message ?

    • Oui, je récupère exactement l’url indiquée dans le msg d’erreur.

      J’avais même ajouté un trace spécifique dans queuepostcreatejesaisplusquoi.php pour utiliser l’url exacte.

      Juste pour rappel de l’historique, j’ai ajouté de nombreux abonnés le dimanche 11.
      Le premier message est parti mais le lendemain à 8h00 au lieu du soir à 18h00.
      J’ai supposé que c’était dû au fait que j’avais plus de 100 abonnés et que l’envoi par lot de 50 était difficile.
      Ensuite j’ai supprimé un abonné le lundi et depuis plus aucun message ne part.

    • Quelle est la configuration de ta lettre ?

      As-tu regardé dans la table spip_cm_post_queued ?

    • Quand tu parles de configuration, tu penses à quoi ?

      Ma lettre est quotidienne, départ à 18h00, je l’utilise uniquement en html du coup j’ai mis la même page dans les 2 zones (texte ou html)

      Effectivement, il me semble qu’il y avait un enregistrement dans la cm_post_queued.
      Il me semble avoir vu un libellé comme subscribe ou équivalent, j’ai pensé que cela était lié à la désinscription. J’ai viré l’enregistrement mais cela n’a rien changé.

      A quoi sert cette table exactement ?

    • Si c’est configuré pour 18h, ça n’aurait pas dû attendre 8h le lendemain, bizarre.

      Dans spip_cm_posts_queued, il y a la liste des envois restant à faire, donc essentiellement le couple destinataire/message.

      Le « subscribe », tu as plutôt dû le voir dans spip_cm_pending qui contient les actions utilisateur (inscription, désinscription) en attente de confirmation.

    • Oui ça doit être ça, c’est dans spip_cm_pending que j’avais un enregistrement.

      La cm_posts_queued reste desespéremment vide étant donné que le postcreate n’abouti pas.

      Concernant l’envoi, il est arrivé à 8h00 le lendemain mais il est bien parti à 18h00, le message était généré à 18h00, je crois me rappeler que l’envoi était fait également vu de Clevermail mais l’arrivée du message n’a eu lieu que le lendemain pour moi.

    • OK, donc faut creuser le post_create !

      Concernant l’envoi, ce n’est donc pas dû à CleverMail, si tu l’as bien vu partir à 18h...

    • Le problème d’envoi n’est toujours pas résolu mais je tiens une piste ... lorsque la page html est au plus simple c’est à dire sans article, ni brèves, la page s’affiche bien en l’appelant et elle part bien en faisant « nouveau message ».

      Dès que je mets une boucle <BOUCLE_breves(BREVES)id_rubrique=6age_relatif<=0par dateinverse0,8>, la page s’affiche bien en l’appelant mais en faisant nouveau message rien ne part. La fonction « recuperer_page » considère que la page est vide.

      J’ai essayé une boucle sur 8 breves en mettant un texte en dur à la place des variables spip d’affichage, c’est la même chose.

      Je vais creuser du côté de la norme d’écriture des pages SPIP, peut être que je ne respecte pas les conventions.

    • Je me réponds encore à moi même :)

      Je viens de faire une boucle sur un article et là ... oh surprise le message est généré ...

      J’ai 3500 brèves et 20 articles. J’ai fait tout ce que je pouvais faire via l’interface de phpmyadmin sur les tables (réparer, optimiser ...).

      Dès que je fais une boucle sur BREVES, je vois bien la page dans le navigateur mais elle n’est pas générée par « Nouveau message »

      Bon je vais finir par trouver !

    • Encore moi !!

      Je n’ai toujours pas trouvé l’origine de mon bug, le pire étant que si je fais une boucle article et une boucle breve à la suite, la page s’affiche toujours bien dans le navigateur et seule la partie article part lors de l’envoi du message ... c’est un truc de fou !

      J’ai cependant une anomalie dans un fichier php que je n’arrive pas à localiser car il n’est pas nommé, voici la partie de prive_spip.log, j’ai un même message moins détaillé dans prive_mysql.log :

      Apr 18 11:54:04 86.77.50.219 (pid 5714) Erreur mysql 1064
      Apr 18 11:54:04 86.77.50.219 (pid 5714) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*
      WHERE spip_cm_posts_queued' at line 2 - 
      SELECT COUNT(DISTINCT pst_id = 67)
      FROM *
      WHERE spip_cm_posts_queued
      Apr 18 11:54:04 86.77.50.219 (pid 5714) Erreur mysql 1064
      Apr 18 11:54:04 86.77.50.219 (pid 5714) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*
      WHERE spip_cm_posts_queued' at line 2 - 
      SELECT COUNT(DISTINCT pst_id = 67)
      FROM *
      WHERE spip_cm_posts_queued
      Apr 18 11:54:04 86.77.50.219 (pid 5714) Erreur requete  (.html)
      Apr 18 11:54:04 86.77.50.219 (pid 5714) Erreur SQL: <tt><b>Erreur SQL</b><br />
       COUNT(DISTINCT pst_id = 67)
      FROM *
      WHERE spip_cm_posts_queued
      <br /><span style='color: red'><b>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*
      WHERE spip_cm_posts_queued' at line 2</b></span><br /></tt>
      &nbsp;&nbsp;<a class='aide'
      href='http://www.monsite.com/spip/ecrire/?exec=aide_index&amp;aide=erreur_mysql&amp;var_lang=fr'
      onclick="javascript:window.open(this.href,'spip_aide', 'scrollbars=yes, resizable=yes, width=740, height=580'); return false;"><img src='../prive/images/wrapper.php?file=aide.gif'
      alt="AIDE"  title="De l'aide sur cet &eacute;l&eacute;ment" class='aide' /></a> |  ()

      L’erreur fait suite à la création d’un nouveau message et de sa suppression manuelle via l’interface.

      ps : j’ai redéployé entièrement le plugin pour éviter toute méprise, j’ai même passé mon site en php5 pour éviter le problème que j’avais eu avec distant.php (erreur uniq_id apparemment connue)

    • Nicolas,

      Le bug du « supprimer » un message provient du clevermail_pour_spip2\action\clevermail_post_remove.php, ligne 9 où il fallait écrire :

       $nbQueued = sql_countsel("spip_cm_posts_queued", "pst_id =".intval($pst_id));

      au lieu de

       $nbQueued = sql_countsel("*", "spip_cm_posts_queued", "pst_id =".intval($pst_id));

      Je n’ai toujours pas réglé mon autre problème, cependant en local je n’ai plus ce dysfonctionnement. J’ai soit un problème de droit sur ovh ... soit je ne sais pas :)

    • Jean-Michel.R

      Bonjour,

      Merci pour vos réponses mais le pb demeure

      En regardant de plus prêt les logs on a dans prive_spip.log.1 :

      Apr 14 09:56:02 85.115.60.180 (pid 469) Recuperer /spip.php ?page=clevermail_nouveautes_html&date=1970-01-02 sur asulgv.free.fr:80 par Resource id #65
      Apr 14 09:56:02 85.115.60.180 (pid 469) HTTP status 403 pour http://asulgv.free.fr/spip.php?page=clevermail_nouveautes_html&date=1970-01-02
      Apr 14 09:56:02 85.115.60.180 (pid 469) Recuperer /spip.php ?page=clevermail_nouveautes_text&date=1970-01-02 sur asulgv.free.fr:80 par Resource id #68
      Apr 14 09:56:02 85.115.60.180 (pid 469) HTTP status 403 pour http://asulgv.free.fr/spip.php?page=clevermail_nouveautes_text&date=1970-01-02
      Apr 14 09:56:02 85.115.60.180 (pid 469) Création d’un message dans la liste « 01.test/02.jm  » (id=3) impossible, contenu vide àhttp://asulgv.free.fr/spip.php?page=clevermail_nouveautes_html&date=1970-01-02 et http://asulgv.free.fr/spip.php?page=clevermail_nouveautes_text&date=1970-01-02

      Les messages ne partent pas à cause de l’erreur 403 ce qui correspond à la réponse du 16 avril à 16:21, par Nicolas Hoizey :

      <>

      D’où mes questions :
      -  est ce que le pb est connu pour les sites hébergés par free ?
      -  pour quel hébergeur ça marche ?
      -  comment résoudre le problème (paramétrage...) ?

      Merci

    • Ah oui, je n’avais pas percuté que tu étais chez free.
      Free bloque les accès http sur le port 80, ce qui veut dire que SPIP ne peut pas récupérer des contenus html distants pat http (flux de syndication, documents distants...). En particulier, dans ton cas, il n’arrive pas à charger la lettre telle que calculée.

      Je crois que tu peux demander une autorisation au cas par cas, mais je ne suis pas sur qu’ils te l’accordent pour ton propre site car c’est un peu dépenser du CPU inutilement.

    • Jean-Michel.R

      Merci pour ta réponse rapide

      Quel hébergeur utiliser alors ?

      Merci

    • Il faudrait voir si on peut envisager de générer directement le contenu sans faire un recuperer_page(), quand c’est local...

    • Furby, ta correction est commitée, merci !

    • Content que je puisse aider en retour !!

      Pour ma part, je viens de réinstaller tout de zéro (drop base, sources téléchargés depuis le net à l’instant) car en local cela fonctionne et sur ovh non, je viens de terminer mais ce n’est pas concluant. La fonction post_create génère la demande de création de la page avec une date 1970... et quand je crée un enregistrement bidon pour avoir une date, la seule date que j’obtiens est celle de mon enregistrement. De toutes les façons il n’y a aucun message créé ... je vais remettre des traces sur tout ça, pour ce soir je vais arrêter. Plus j’avance ... plus je recule :)

    • Après encore de nombreux tests ce matin, je m’aperçois que chez OVH je ne peux pas lire les pages locales, dès que je mets n’importe quelle url externe dans Clevermail, le mail part sans problème.

      J’ai tenté une redirection externe via .htaccess, cela ne fonctionne pas (même symptômes, appel direct ok, appel via clevermail ko).

      Avez-vous une idée pour résoudre ce point ?

      Merci !

    • OK, c’est donc visiblement le même problème que chez Free indiqué précédemment, donc il faudrait vraiment faire un traitement local sans recuperer_page() si la page est générée par un squelette...

    • J’avoue ne pas avoir d’idée pour un traitement local où alors tout simplement reprendre le code généré par le squelette et le mettre dans un fichier .php qui serait appelé directement.

      Bon j’ai 10 mn devant moi, je tente :)

    • Je reviens sur ce sujet.

      J’ai créé un .php qui fait lui même la requête et l’affichage des données que j’ai déposé à la racine de SPIP, l’appel fonctionne et le mail part bien manuellement.

      L’automatisme ne s’est pas déclenché cependant, il faut que je surveille, je n’ai pas voulu attendre et je l’ai lancé manuellement.

      Comment fonctionne la prise en charge de l’envoi des mails ? J’ai cru comprendre que le cron du pied de page de SPIP générait le séquencement d’envoi. J’ai 140 mails à envoyer, je les envoi par groupe de 6 pour éviter que OVH pense à du spam et me bloque mes envois, du coup je clique sur le site pour faire avance « le compteur », est-ce nécessaire ? j’ai l’impression qu’une visite suffit pour déclencher les envois par groupe de 6.

      Comment cela fonctionne-t-il ?

      Bref, j’y suis presque !!

    • Encore moi,

      Je pense être arrivé à une certaine stabilité à l’usage de ce module et du facteur, cependant cela nécessite un paramétrage qui sort un peu du cadre de ce que propose Clevermail.

      Tout d’abord, pour que le message parte, il faut au moins avoir une visite côté client sur le site. C’est lié au « CRON » interne à SPIP. Pour contourner cela, comme je suis chez OVH j’ai utilisé le scheduler intégré, je lance un spip.php toutes les heures. Il faut juste espérer que le scheduler n’est pas lancé avant l’heure ... jusqu’à présent mon « CRON » part 4 minutes avant l’heure reelle.

      Ensuite concernan les abonnés, il semble que le facteur + clevermail génère un flot de mail chaque « CRON » de SPIP. Par conséquent, avec 200 abonnés c’est loin d’être viable surtout qu’il faut autant de CRON SPIP que de nombre d’abonnés divisés par la quantité par envoi ... et comme il est conseillé sur OVH de ne pas dépasser 6, c’est pas gagné.

      Du coup, j’ai utilisé l’option intégrée à OVH, la mailing list. Il s’agit d’une seule adresse qui regroupe les abonnés. Il faut cependant les paramétrer via le manager d’OVH mais cela règle le problème des multiples CRON nécessaires.

      Il me reste un problème à résoudre qui n’est lié à de la programmation php : les conversion de table de caractères. Sur certains PC ou MAC, les caractères accentués sont transformés en une suite bizarre de point d’interrogation à l’envers, de 1/2, de i tréma. Je n’ai pas encore trouvé la solution, c’est probablement tout bête ...

    • Concernant ton problème de cron, nommé « génie » maintenant dans SPIP, il faut effectivement avoir des visites sur le site pour qu’il soit déclenché. Tu as moyen de forcer l’envoi avec la page /ecrire/?exec=clevermail_queue_process, qui se recharge toute seule, mais tu dois être connecté.

      Sinon, avec une limite de 6 messages par lot chez OVH, et un lot chaque minute, tu enverras tes 200 messages en une demi heure, c’est pas si mal...

      Concernant ton soucis d’encoding, il n’y a malheureusement rien de géré pour l’instant dans CleverMail. As-tu coché l’option « Convertir en ISO-8859-1 » du Facteur ?

    • Au fait, peux-tu détailler ce que tu as fait—un script PHP si j’ai bien compris—pour que ça marche, finalement ?

    • Salut !

      Je viens d’essayer le paramètre d’encoding au niveau du Facteur, effectivement maintenant cela fonctionne sur gmail, sur iPhone mais sur webmail de free j’ai d’autres caractères bizarres.

      A la vue de mon code peut être que vous verrez ce qui ne vas pas !

      <?php
      
      setlocale (LC_TIME, 'fr.UTF8'); 
      
      $ladate = "'".date('Y-m-d 00:00:00')."'";
      
      $connexion = mysql_connect('nom_de_la_base','login','password');
      $db=mysql_select_db('bd');
      
      $requete = "SELECT breves.date_heure, breves.titre, breves.date_heure AS date, breves.texte, breves.id_rubrique, breves.lang
      FROM spip_breves AS <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+YnJldmVzPC9jb2RlPg=="></span>
      WHERE (breves.statut = 'publie')
      	AND (breves.id_rubrique = 6)
      	AND (LEAST((UNIX_TIMESTAMP(".$ladate.")-UNIX_TIMESTAMP(breves.date_heure))/86400,
      	TO_DAYS(".$ladate.")-TO_DAYS(breves.date_heure),
      	DAYOFMONTH(".$ladate.")-DAYOFMONTH(breves.date_heure)+30.4368*(MONTH(".$ladate.")-MONTH(breves.date_heure))+365.2422*(YEAR(".$ladate.")-YEAR(breves.date_heure))) <= 1)
      ORDER BY breves.date_heure DESC
      LIMIT 0,8;
      ";
      
      $select = mysql_query($requete);
      
      if (mysql_num_rows($select)>0) 
      {
      echo "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>";
      echo "<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />";
      echo "<html>
      <head><title>Breves du ".date('d F Y')."</title></head>
      <body>";
      
      while($data = mysql_fetch_array($select))  
          { 
          // on affiche les informations de l'enregistrement en cours 
          echo '<br><b><H2>'.utf8_encode($data['titre']).'</h2></b><p>'.utf8_encode($data['texte']).'</p><br>';  
          }  
      
      echo "</body></html>";
      }
      
      // on ferme la connexion à mysql 
      mysql_close();  
      
       ?> 

      C’est brut comme code mais ça m’a permit de résoudre mon problème ou presque :)

      Sur l’iPhone j’ai le DocType qui apparaît sur les 2 premières lignes du message qui fait office du résumé avant de l’ouvrir.

    • Et tu as donné l’URL de ce script à CleverMail ? Si c’est le cas, étonnant qu’il y arrive alors qu’il n’y arrivait pas avec un squelette, c’est à priori la même requête qui est faite...

      Désolé, je ne sais pas d’où vient le problème d’encoding.

    • Et oui, c’est très étonnant ... d’autant que 15 jours avant que cela ne fonctionne plus avec l’url SPIP ça fonctionnait très bien. Du coup, j’ai testé le script bateau avec un phpinfo() ; dans un fichier php et là ca fonctionnait, et puis j’ai ensuite créé ce fichier dont le code source est en haut.

      Effectivement, la requête est la même que celle générée par SPIP car je l’ai tout simplement extraite de la page générée.

      Je n’y comprends plus rien d’autant que pour éviter les délais trop long d’envoi de mail j’ai créé une mailing list chez ovh (via l’outil manager ovh), j’ai également programmé le scheduler ovh pour appeler une page visiteur toutes les heures ... mais ce c... les appelle à xx h 56 minutes, du coup ma page qui devrait partir à 18h00 part à 18h56 s’il n’y a pas de visiteurs. Mais pire encore ... le cron spip ne fait plus partir les messages à l’heure programmée, il faut que je remette des trace quand la post queue ... actuellement c’est moi qui lance vers 18h00 le message à la main :)

      Concernant l’encoding, j’ai décoché ISO sur le Facteur, sur iPhone et gMail le message est bien affiché maintenant mais sur la messagerie en ligne de free j’ai des caractères bizarres mais pas les mêmes qu’avant ! En tous cas j’ai suffisamment d’éléments pour trouver la correction maintenant.

      Merci pour ton aide, je vous tiens au courant quand j’aurais à nouveau trouvé pourquoi cela ne se déclenche pas.

    • OK, tu as des soucis vraiment particuliers, j’espère que tu trouveras des solutions !

    • Salut,

      Je n’ai pas tout compris concernant la solution de génération de page chez free.
      Que fait le script PHP et comment est-il appelé ?

      Merci d’avance.

    • @Nicolas : Effectivement j’enchaîne les problèmes, c’est d’autant plus étonnant que j’ai tout réinstallé en spip 2.10 nativement avec migration manuelle de mes brèves et redéploiement de mon répertoire squelette qui contient le fameux cron !! Je finirais par trouver, c’est sûr et j’ai surtout pas le choix :)

      @yazul : Clevermail permet de réaliser des envois de contenu html, qu’ils proviennent de n’importe où ... sauf qu’apparement chez free, lorsque SPIP s’appelle lui même, cela ne retourne rien. Chez OVH cela fonctionnait bien jusqu’au moment où cela ne fonctionna plus !! Du coup j’ai créé un script php qui reproduit ce que la page SPIP me générait. Le script est appelé tout simplement depuis Clevermail. Il permet d’affiche le titre et le contenu des Brèves du jour.

    • J’apporte une demi-réponse au problème « free.fr » : je viens de le résoudre pour Spip-listes.
      (désolé, j’ai utilise spip-listes en premier et fait l’effort de debug ; je ne connais pas Clever Mail).

      Un site hébergé chez free ne peut pas accéder à un autre site (pas d’utilisation du port 80), donc impossible de charger une page externe. Il faut demander à l’admin de placer cette URL en « whitelist » mais cela sera refusé pour les URLs du site lui-même (impossible de s’appeler soi-même).

      J’ai donc remplacé les lectures de contenus externes (generer_url_public) par des lectures internes (recuperer_fond).

      Du coup, on perd la possibilité d’utiliser des URL externes (sauf à les placer en whitelist).

      Voir ma réponse : http://www.spip-contrib.net/SPIP-Listes#forum430071

    • RealET vient justement de modifier CleverMail pour qu’il supporte tant les appels distants avec recuperer_page() que les appels locaux avec recuperer_fond(), ce qui est encore mieux !

      cf http://zone.spip.org/trac/spip-zone/changeset/37899

    Répondre à ce message

  • 4

    À propos des messages qui ne se créent pas, un tout petit détail au cas où (que j’ai mis du temps à repérer) : dans les paramétrages de la liste, il faut renseigner *les deux URL* indiquant la version HTML et la version « Texte brut » de la lettre, et il faut *que ces URL soient valides*. Sinon, effectivement, les messages ne se créent pas, sans autre avertissement. Nicolas, peut-être qu’un message d’erreur pourrait être généré dans ce cas ?

    J’en profite pour mentionner deux autres problèmes rencontrés et leur solution :

    -  Les paramètres d’administration de Clevermail ne mémorisaient pas les changements (plus quelques autres bugs bizarres). C’était chez moi dû à un défaut d’encodage de ma base, qui mélangeait utf8 et latin1 (Clevermail v1 utilisait ça par défaut je crois) alors que spip fonctionnait en UTF8. La manip de Benjamin a résolu ce problème.

    -  Clevermail n’envoyait de message qu’en format texte brut. C’est tout simplement que le squelette que j’indiquais pour la lettre en HTML contenait la balise #INSERT_HEAD, qui rendait invalide le mail.

    Voilà. Maintenant, Clevermail fonctionne enfin impeccable, l’ergonomie et le fonctionnement ont fait un bond extraordinaire en avant depuis la version 1, et je vais enfin pouvoir le déployer sur tous mes sites mutualisés ! Encore bravo et merci.

    Une question : pour des sites peu visités, j’avais automatisé le vidage régulier de la queue de messages par un script qui appelait à intervalles réguliers l’url « ...ecrire/ ?exec=clevermail_queue_process ». Ça semble ne plus fonctionner avec cette version de Clevermail. Existe-t-il une alternative ?

    • Il me semble pourtant que l’on ne crée rien que si les deux sont vides... Pour ce qui est de la génération d’un message d’erreur, je ne suis pas encore assez au point sur #BOUTON_ACTION, et pas trop le temps de creuser.

      Intéressant le problème d’encoding. Ce n’est donc pas un bug de CleverMail, c’est bien ça ?

      Pour le #INSERT_HEAD, comment peut-il avoir un impact ?

      En tout cas, heureux que ça fonctionne, et que ça te plaise !

      Pour forcer l’envoi, de mémoire je pense que tu peux appeler l’URL /ecrire/?exec=clevermail_queue_process

    • Merci beaucoup pour la réponse !

      Je viens de refaire mes test, et pour la non-génération du message, je confirme : si un des deux champs URL n’est pas valide (s’il contient http://, tout simplement, par ex.), alors aucun message n’est créé.

      Pour le #INSERT_HEAD, comme j’étais capable de reproduire à nouveau, j’ai creusé plus loin : en fait, c’est le plugin « sélecteur générique » (nécessaire pour Grappes) qui est responsable. Il insère dans #INSERT_HEAD un script bizarre : une fonction rechercher_objet placée entre <!--   -->, le tout placé entre deux balises <script></script>... En présence de ce bout de code, c’est le contenu en texte brut qui est envoyé par Clevermail, même si le destinataire est censé recevoir la version HTML. En le retirant, tout rentre dans l’ordre. Le problème, c’est que j’ai l’impression que le développement du plugin « sélecteur générique » a été abandonné...

      Quant aux souci d’encoding, je n’ai pas pris le temps de tout retester. Etait-ce un bug de Clevermail 1 à la création des tables à l’origine, ou un pb de conversion de Clevermail 2, ou encore le résultat lointain d’une fausse manip de ma part dans le passage de SPIP de latin1 à utf8 ? Il faudrait vérifier auprès d’autres utilisateurs de Clevermail qui ont eu, eux aussi, à mettre à jour pour savoir si ce problème est partagé. Mais je crois que nous sommes rares !

      Pour forcer l’envoi, ok, c’est bien la fonction qui est dans mon script, et ça a l’air de fonctionner. Deux choses cependant :
      -  Elle ne retourne plus la liste des adresses traitées comme avant (j’ai testé sur l’envoi de lots de 3 mails).
      -  J’ai l’erreur suivante lorsque j’appelle la fonction ?exec=clevermail_queue_process dans mon navigateur : Warning : preg_replace_callback() [function.preg-replace-callback] : Compilation failed : missing ) at offset 153 in /plugins/facteur/inc/facteur_classes.php on line 288

      Ma configuration :
      -  SPIP 2.0.10
      -  Clevermail 2.4.0 SVN [37028]
      -  Facteur 1.3.5 SVN [37029]

    • Je viens de refaire mes test, et pour la non-génération du message, je confirme : si un des deux champs URL n’est pas valide (s’il contient http://, tout simplement, par ex.), alors aucun message n’est créé.

      OK, c’est bon à savoir, et sans doute à corriger. Je voudrais de toute façon pouvoir configurer une lettre pour qu’elle ne soit disponible que dans une seule version, HTML ou texte.

      Sinon, vraiment très bizarre le problème avec le sélecteur générique, CleverMail ne prend que ce qu’on lui donne, tu es sûr qu’en appelant la version HTML manuellement c’est différent de ce qui est envoyé ?

      Pour forcer l’envoi, bizarre que cela ne t’affiche rien, j’ai bien ça dans le code de genie/clevermail_queue_process.php :

      if ($verbose == 'yes') {
        echo "Message from list \"".$list['lst_name']."\" sent to ".$to." in ".$mode." format<br />";
      }

      Pour ce qui est du warning, cela a l’air de venir du plugin Facteur...

    • tu es sûr qu’en appelant la version HTML manuellement c’est différent de ce qui est envoyé ?

      Je ne sais pas si je comprends bien ce que tu veux dire par « manuellement »... Voici le détail de ce que j’ai fait :

      • Je génére deux messages dans ma liste, puis je vais les éditer manuellement (« modifier »).
      • Tous les deux ont pour « contenu text » la phrase : « pas de contenu en mode texte ».
      • Le « contenu html » est identique pour les deux à l’exception de ce « bout de code » dont j’ai parlé que je supprime manuellement dans l’un des deux messages (je colle ci-dessous la partie supprimée). J’ajoute dans le titre un truc pour distinguer les deux messages.
      • Je vérifie les aperçus TXT et HTML : ils sont corrects et identiques pour les deux messages.
      • J’envoie. A la réception dans Thunderbird, un des messages contient le code HTML et s’affiche correctement (celui sans le « bout de code ») ; l’autre (celui qui a conservé l’ajout effectué par le Sélecteur Générique) m’affiche la phrase « pas de contenu en mode texte ».

      Conclusion  : Pour le même destinataire et les mêmes paramètres d’envoi, Clevermail échange donc bien le contenu html par le contenu text lorsque ce « bout de code » est présent dans le « contenu html » du message. Il le fait au moment du processus de mailing.


      Voici le « bout de code incriminé » (je ne suis pas très doué en php, mais le fait qu’il soit entre <!-- --> « désactive » le script, c’est ça ? Pourquoi donc le « Sélecteur Générique » l’insère-t-il, dans ce cas ?)

      <script type='text/javascript'><!--
       
      function rechercher_objet(id_selecteur, page_selection) {
      	// chercher l'input de saisie
      	var me = jQuery(id_selecteur+' input[name=nom_objet]');
      	me.autocomplete(page_selection,
      			{
      				delay: 200,
      				autofill: false,
      				minChars: 1,
      				multiple:false,
      				multipleSeparator:";",
      				formatItem: function(data, i, n, value) {
      					return data[0];
      				},
      				formatResult: function(data, i, n, value) {
      					return data[1];
      				},
      			}
      		);
      		me.result(function(event, data, formatted) {
      			if (data[2] > 0) {
      				jQuery(id_selecteur + ' #pid_objet').val(data[2]);
      				jQuery(id_selecteur + ' input[type="submit"]').focus();
      				jQuery(me)
      				.end();
      			}
      			else{
      				return data[1];
      			}
      		});
      	};
      // --></script> 

    Répondre à ce message

  • 6

    Bonjour

    Peut-être suis-je en train de passer à côté de quelque chose de simple, mais malgré toutes mes tentatives et recherches, je ne parviens pas à utiliser un squelette SPIP idoine pour fabriquer un message.

    Un tel squelette doit-il être stocké à un endroit particulier de l’arborescence ?
    Comment doit-on spécifier son adresse dans le champ « URL des templates générés » ?

    Merci beaucoup à ceux qui prendront le temps de me répondre...

    • Les « squelettes idoines » dont tu parles, eh bien il me semble que tu les as identifiés : ce sont les fichiers templates dont le plugin te met une version que tu es libre de modifier à ta guise (attention aux mises à jour du plugin : il peut être malin d’ utiliser d’aures fichiers pour ne pas les écraser lors d’une maj)

    • Merci de la réponse... mais je reste scotché au même endroit.

      En ne changeant aucun des paramètres par défaut du plugin, l’URL pointée est bien clevermail_nouveautes_html.html. Sauf que dans ce cas, le lien « nouveau message » ne produit absolument rien, ni nouveau message, ni message d’erreur.

      La seule manière que j’ai trouvée de déclencher quelque chose a été de pointer sur un des squelettes de mon site (par exemple, article.html). Sauf que là, ça devient pas pratique du tout du tout pour en fabriquer le contenu tel que je le souhaite (si le même squelette html doit servir à la fois pour l’affichage normal du site et pour fabriquer la newsletter, c’est un peu comme si la même pièce servait à la fois de cuisine et de salle de bains...).

      J’ai également tenté de désigner un autre fichier (essai.html) par une syntaxe recopiée sur la valeur par défaut : http://monsite/spip.php?page=essai.html mais il ne se passe à nouveau strictement rien (hormis, lorsque je modifie cette syntaxe en tâtonnant, quelques messages « erreur 404 »).

      D’où ma question initiale, que je repose :
      -  dans quel(s) répertoire(s) les squelettes désignés dans le champ URL doivent-ils se trouver ? Ceux du plugin, ou ceux du site ?
      -  avec quelle syntaxe doit-on les appeler ?

      En espérant avoir été plus clair, merci d’avance...

    • Une oiste d’investigation : ta lettre a-t-elle du contenu à publier ? Je veux dire par là : est-ce-que le template chargé d’aller chercher les nouveautés (ou autre chose si tu l’as peronnalisé), est-ce que le template dans génère du contenu ou non ? Si il n’y en pas (=pas d’article publié récemment par exemple) il peut être logique qu’il n’y ait pas de création de nouvelle lettre !

    • Oupppps....il faut lire une piste d’investigation (et pas une oiste d’investigation !!!) !

    • OK, c’est décoincé.

      Je pense qu’une bonne partie de mes soucis venait du fait que j’avais fait des essais sur un site protégé par un mot de passe. Du coup, il y a un certain nombre de trucs qui bloquaient. Là j’ai donc pu créer un squelette spécial newsletter à la racine du répertoire du plugin (là où se trouve clevermail_nouveautes_html.

      Tout va bien (du moins, tout va mieux !)

      Un grand merci à vous pour les réponses rapides.

    • Tu ne devrais pas mettre ton squelette perso dans les sources du plugin, mais plutôt avec tes autres squelettes perso, sinon tu risques de le perdre quand tu feras une mise à jour du plugin.

      Sinon, pour ton squelette essai.html, ce n’est pas http://monsite/spip.php?page=essai.html qu’il faut mettre comme adresse, mais http://monsite/spip.php?page=essai...

    Répondre à ce message

  • 1

    Bonjour

    Mes affaires avançant plutôt bien, j’en arrive à une deuxième question. Y a-t-il moyen de transmettre, au niveau du champ « URL des templates générés » un paramètre au squelette utilisé pour une newsletter ?

    Je m’explique : je gère un site où les informations sont réparties dans plusieurs régions, régions qui correspondent à des rubriques aux structures identiques. Je souhaite créer une newsletter par région, qui n’afficherait donc que les infos de la région concernée. Puis-je éviter de tout faire à la main, avec 22 versions de mon squelettes dans lesquelles j’aurais changé à la main le numéro des rubriques concernées ?

    Merci d’avance pour les réponses....

    • Tu peux bien entendu passer ce que tu veux comme paramètre dans l’URL d’appel, dont un id_rubrique=42...

    Répondre à ce message

  • 9

    Encore moi !!

    J’utilise un envoi quotidien avec Clevermail pour mes brèves du jour et je suis bien embêté car la fonction clervermail_post_create envoie la page html associé avec la date du dernier envoi ...

    Du coup, j’ai fait un ajout dans le code (ligne 10 de /inc/clevermail_post_create.php) en forçant $last_create = time() ;

    Je n’aime pas toucher au code directement mais je dois avouer que je ne sais pas comment gérer ce problème.

    Maintenant j’envoie donc mon courrier à la date du jour, j’espère que cela va régler également mon problème de

     {age_relatif<=1} 

    qui n’est pas pris en compte dans ma page html générée.

    • Je ne comprends pas ton problème. Si tu veux un envoi quotidien, c’est bien la date de la veille (du dernier envoi donc) qu’il faut en paramètre, pour ne prendre que les nouveaux contenus, non ???

    • Mon envoi quotidien est programmé à 18h00 pour envoyer les brèves du jour.

      Lorsque la page html est appelée un paramètre date est envoyé via clevermail_post_create.php

      Si le programme est lancé aujourd’hui (le 30/03/10), le paramètre date est positionné à la date du dernier envoi, soit pour un quotidien le 29/03/10 ou date(« Y-m-d », 60*60*30) si c’est la première fois.

      Enfin bon, tu connais mieux ton code que moi ... peut être que c’est l’usage que j’en fait qui me crée un souci.

    • Tu ne peux pas plutôt programmer les envois à 1h du matin, pour que ce soient réellement les brèves de la journée complète ? (et que ça règle ton soucis)

    • Eh non ... l’utilisateur veut que le mail arrive en fin d’après midi chaque jour !
      Les brèves de chaque jour sont saisies jusqu’à 17h00.
      Ah ... les utilisateurs, on sera tranquilles sans eux :)

    • Malheureusement, il me semble que SPIP ne sait gérer qu’un paramètre date dans l’URL qui puisse « descendre » ensuite dans le squelette pour faire de l’age relatif et donc ne sélectionner que les nouveaux contenus.

      Sinon, il suffirait de passer un instant date/heure plus précis, et ça résoudrait ton soucis, sans remettre en cause le fonctionnement actuel...

      Tu peux demander le support d’une date « complète », avec l’heure, sur spip-dev@... ;-)

    • FurbyFurby

      Merci pour ton aide Nicolas.

      En dehors du fait que age_relatif n’a pas l’air de très bien fonctionner car <1 renvoit aussi des dates à -2 jours, je n’ai pas véritablement le problème de date/heure car les utilisateurs saisissent des brèves jusqu’à 17h00 et veulent un mail automatique à 18h00, du coup les prochaines brèves ne seront saisies que le lendemain matin.

      Mais l’idée d’étendre le filtrage à l’heure est intéressante aussi.

      Je continue de surveiller ce « age_relatif » :)

    • Je ne comprends pas ton <1.

      Dans le squelette par défaut, nous avons mis {age_relatif<=0}...

    • Effectivement c’est bien age_relatif<=0 ;)

      Merci pour tout, maintenant cela fonctionne, à bientôt pour de nouvelles aventures.

    Répondre à ce message

  • 7
    Yannick

    Bonjour à tous,
    Dommange mais ce plug in prometteur ne fonctionne pas chez-nous. Tout est en 777 (chmod), je fonctionne avec spip.2.0.1.0, j’ai installé le facteur et le spip bonux comme mentionné et quand vient le temps de créer un nouveau message, rien ne se produit.

    Quelqu’un aurait une solution ?

    • Déjà tu peux lancer manuellement la génération du message avec le bouton nouveau message (attention, un message par jour maximum, si tu en as un autre supprime le).

      Ensuite tu vas dans les messages et tu cliques sur envoyer.

      Si le message part, c’est super !

      Ensuite regarde dans le fichier log de ton répertoire tmp (spip.log et prive_spip.log) pour voir si le cron fonctionne bien. C’est le cron qui traite les files de gestion des événements, le cron traite un message à chaque clic sur le site en tant que visiteur.

      Dans spip, il faut savoir que le cron est activé par les pieds de page (inc-pied).

      Bon tests !

    • Yannick

      Bonjour Furby,
      En fait, mon problème se situe au niveau de l’administration de CleverMail.
      J’ai créer une lettre et je l’ai nommée 01.lettre test Normandin/01.premier test.
      J’y ai ajouté 3 abonnés bidon à partir de mes adresses et tout va bien jusque là.

      Quand je clic sur nouveau message le navigateur travaille mais rien ne se produit (apparemment). Le lien supprimer est également inaccessible à moins que j’ai préalablement créer 2 lettre d’information.

      Donc, impossible d’utiliser CleverMail puisqu’impossible e créer une lettre.

      Merci.

    • Dans ton cas, le plus simple est de mettre phpmyadmin à contribution... Solution simple et efficace l !

    • Yannick

      Bonjour Manu,
      il semblerait que ce problème soit fréquent. tin_nqn a le même et j’ai lu dans les messages antérieurs la même chose.

      Je connais phpMyAdmin mais, je ne comprend pas comment ce dernier pourrait résoudre le problème. Dois-je modifier le nom de certaines tables manuellement ?

      Que dois-je chercher au juste ?

      Qu’en pense Nicolas ?

    • tin_nqn

      Hi,

      could somebody help me with this bug ? What I should do with phpmyadmin ?
      It’s so important because Clevermail looks like the only one mailer plugin for spip usable (I’ve tried spip listes and it sucks).

    • What I was meaning when suggering you to use phpmyadmin was backup cm tables then to delete the records or empty the tables so as to start again from scratch.

      Then, some clues : Does this bug appear even with brand new tables ? When clicking on « new letter » button, are there some records appearing in tne tables ? If not, what about then in .log files ? Have you tried CM after having disabled others pluglins ? If still bugging, may be something wrong with your php/apache or sql version/configuration ? Have you tried on a local server ?

    • Yannick

      Thanks beaucoup Manu ;-)

      autrement dit, the version is not stable.

      Pour l’instant, je n’ai pas le temps ce qui fait que j’ai installé spipliste (qui va très bien en fonction de mes besoins). Mais je devrai revenir à la charge d’ici quelques semaines. En attendant, je suis le topic alors, if tin_nqn find a solution, please keap us informed of it !

      Je parle le bilingue, on dirait que je suis Acadien ;-)

    Répondre à ce message

  • 1
    Frédéric Rousseau

    Souvent les commentaires se transforment en hotline.

    Là, c’est juste pour dire que tout fonctionne nickel, que l’ergonomie est parfaite, et que je suis un utilisateur plus que satisfait.

    Merci pour ce travail dont toute la communauté Spip profite.

    Chapeau bas !

    Répondre à ce message

  • 4

    Derniers inscrits


    J’ai cherché dans les tables cm_xxx si il y avait des champs de type date en espérant tpouvoir facilement suivre les inscriptions à une newsletter : faire une requete listant par exemple, les inscrits de la semaine passée, du mois passé etc...
    Je n’ai rien vu : ai-je mal regardé, faut-il s’y prendre autrement ou cela n’a-t-il pas été prévu ?...

    • Cela n’a pas été prévu, mais tu peux créer un ticket (cf fin de cet article) pour demander cette évolution qui me paraît intéressante.

    • ... On fait comment pour créer un ticket ? Je ne suis pas inscrit sur la zone et j’ai donc bien l’impression que je ne dispose pas des droits nécessaires pour cette opération... Ou bien, c’est que je ne pige pas comment faire...

    • Il faut te connecter avec un compte OpenID.

      Si tu n’y arrives pas, signale le sur la mailing-list spip-zone@, ce serait dommage que l’on bloque l’accès à ce service essentiel...

    • OK... je viens de créer le ticket !

    Répondre à ce message

  • 7

    Je reviens à la charge sur mon histoire de messages qui ne partent pas.

    Apparemment le Facteur est bien installé, il fonctionne en mail() et avec smtp. Je l’ai laissé en smtp.

    J’ai donc plusieurs messages que je peux visualiser mais qui ne passent pas du statut « En cours d’envoi » à « Envoyé ».

    Je peux créer de « Nouveaux messages » sans problème mais aucun ne part.

    Chose étonnante également, les paramètres dans l’administration (voir copie écran ci-dessous) ne conservent pas les informations que j’y rentre, le formulaire est toujours vide même après « Enregistrer »

    Quel test je peux lancer manuellement pour faire partir les messages ?

    J’ai créé une lettre qui est sensée partir à 18h00 tous les jours, rien ne se passe également, comment se fait le « scheduling » ? puis-je le forcer également ?

    Merci de vos retours.

    • Pour compléter mes propos,

      La table spip_cm_list contient bien le message standard à envoyer..
      La table spip_cm_list_subscribers contient 2 entrées correspondant à mes 2 abonnés.
      La table spip_cm_pending est vide.
      La table spip_cm_posts contient 6 messages prêts à partir.
      La table spip_cm_posts_done est vide.
      La table spip_cm_posts_links est vide.
      La table spip_posts_queued contient 12 entrées (2 fois 6 messages).
      La table spip_cm_settings ne contient que CM_MAIL_SUBJECT et CM_MAIL_TEXT alors que dans l’ancienne version il y avait les mails de départs, comme dans l’administration.
      La tables spip_cm_subscribers contient les mails de mes 2 abonnés.

    • Je me parle à moi même, mais j’aime bien !!

      Bon j’ai trouvé :

      Pour une raison que je ne comprends pas (peut être un souci lors de la migration), la table SPIP_CM_SETTING ne comprenait pas les données nécessaires à l’envoi du mail.

      Il manquait donc, CM_MAIL_RETURN, CM_MAIL_ADMIN, CM_SEND_NUMBER et CM_MAIL_FROM.

      Les messages sont partis tout seul, cela fonctionne très bien maintenant.

      Pensez-donc à vérifier ces tables si le Facteur fonctionne bien !

      Du coup, l’écran d’administration affiche bien les valeurs de la table désormais, et la mise à jour fonctionne bien avec le bouton « Enregistrer »

    • Suite des aventures ...

      Les mails en automatique ne partent pas. J’ai analysé en détail les tables, tout est correct, la fonction clever_mail_post_create() est « bien appelable » car toutes les conditions requises sont présentes.

      Malheureusement je n’ai aucun évènement, ni trace dans la log.

      J’ai mis une trace bidon pour vérifier que le programme est bien exécuté, clever_mail_post_create() ne l’est pas.

      Vous avez déjà rencontré cela ?

      Merci

    • Episode premier, fin !

      J’ai étudié en détail le fonctionnement du « cron » et j’ai mis de nombreuses traces pour bien comprendre. Mon problème venait du fait que je n’utilise pas les pieds de page (inc-pied) dans mes écrans, malheureusement ce sont ces mêmes inc-pied.html qui lance le pseudo cron, du coup aucun cron n’était lancé ...

      Pour résoudre ce problème, j’ai ajouté à inc-head.html un tag #SPIP_CRON qui lance à tour de rôle les tâches des pipelines.

      Il faut noter également que si vous lancez une lettre manuellement, il faudra attendre le lendemain pour qu’elle puisse être lancée en automatique car la condition de lancement d’un quotidien est que le jour d’aujourd’hui doit être différent du dernier jour de création d’un courrier.

      Vous pouvez également supprimer cette même lettre, dans ce cas le courrier partira bien aujourd’hui.

      J’espère que cela pourra aider d’autres utilisateurs de SPIP et de CLEVERMAIL :)

    • Étrange ton histoire de table de paramétrage qui n’est pas complète, quelqu’un d’autre a eu ce soucis ???

      Sinon, bravo pour ta progression vers la solution... ;-)

    • Concernant le problème des tables, il faut savoir qu’initialement j’étais en SPIP 1.9 avec le plugin Clevermail correspondant adapté. Il était installé pour test.

      Ensuite j’ai migré SPIP en 2.0 et j’ai dû réinstaller Clevermail.

      Lorsque mes problèmes sont arrivés, je me suis aperçu que j’avais 2 tables pour Clevermail, une première famille sans préfixe et une autre préfixée spip_

      Comme les préfixées par spip_ étaient utilisées, j’ai donc analysé leur contenu et c’est là que j’ai vu le problème des tables de paramétrage.

      Après la mise à jour manuelle des tables, la mise à jour via les écrans de paramétrage s’est mise à fonctionner.

      Avec ces informations, peut être que tu va pouvoir comprendre l’origine du problème.

    • Ah, oui, en 1.9.2, les tables avaient un préfixe « cm_ » si je me souviens bien, plutôt que le préfixe configuré pour les tables de SPIP, un héritage du logiciel indépendant dont c’était issu.

      Pour la migration vers la v2, il me semblait pourtant qu’on avait géré, ce n’est peut-être pas bien fait...

    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