Carnet Wiki

30. Abonnements à une lettre

Version 7 — February 2011 JLuc

Il y a 4 manière de constituer la liste des destinataires d’une lettre :
-  l’internaute s’inscrit sur un formulaire public
-  le webmaster l’inscrit manuellement
-  le webmaster importe une liste d’abonnés
-  à partir d’une requête SQL

Les abonnés

A partir de la page de gestion des lettres (menu Édition / Lettres d'information) il est possible d’accéder à la gestion des abonnés.

On y voit :

-  l’évolution du nombre d’abonnés au cours des derniers mois :

-  la liste des abonnés et la liste des thèmes d’abonnements accessibles au public :

-  un bloc de raccourcis permettant d’accéder diverses pages et fonctionnalités de spip-lettre

En cliquant sur un abonné, on accède à sa fiche, qui décrit ses caractéristiques :

... et présente la liste des lettres reçues :

Inscription ou désinscription via le formulaire public

Le formulaire demande
-  le nom et le mail de l’internaute souhaitant recevoir la lettre.
-  le format auquel celui ci souhaite la recevoir.
-  si plusieurs thèmes ont été définis, il propose de choisir parmi les différents thèmes.

Ce formulaire est personnalisable par CSS.

Exemple de présentation non personnalisée, et dans le cas où il y a un seul thème :

Inscription par le webmestre, dans la partie privée

Par la page de gestion des lettres (accédée par Édition / Lettres), le webmaster peut aussi inscrire des abonnés.

Il est possible dans ce cas d’inscrire un abonné à une rubrique à laquelle auquel aucun ’thème’ de lettre publique n’est associé.

Importer des abonnés par un fichier au format CSV

La page permet de spécifier à quelle rubrique et avec quel format les abonnements doivent ils se faire :

Format du fichier :
-  le fichier doit être encodé au format UTF8 (sous windows, l’éditeur de texte Notepad++ permettra de voire quel est l’encodage, et, en cas de besoin, de faire la conversion)
-  les lignes doivent être du type “email”;“nom”, c’est à dire que dans les options d’export du fichier CSV il faut indiquer que :

  • le séparateur doit être le point virgule ;
  • les champs doivent être entourés de guillemets "

Exemple :

"adresse1@mail.com";"Jean-Paul Bangbang"
"adresse2@mail.com";"Carole Poutou"
"adresse3@mail.com";""
...

Si un abonné est déjà inscrit avec un ’nom’, et qu’on le réimporte sans que le nom ne figure dans le fichier, il garde son ’nom’.

Vous pouvez par exemple générer ce fichier CSV au moyen d’un squelette qui bouclera sur d’autres tables (la table AUTEURS par exemple, ou une table issue d’un autre script de mailing liste).

Adresser la lettre aux destinataires issus d’une requête

Cette fonctionnalité n’a encore été que peu testée.

Cette fonctionnalité nécessite de maîtriser SPIP, php et SQL.

Le fichier inc/delivrer_hors_abo fournit une fonction lettres_sql_programmer_envois qui permet d’envoyer une lettre aux mails issus d’une requête sur la base de donnée, quelque soit la (ou les) table(s) sur laquelle cette requête porte. Ce peut être une manière d’envoyer une lettre aux abonnés de spip_lettres, mais seulement à ceux qui vérifient certains critères, mais les mails renvoyés par la requête peuvent provenir de n’importe quelle autre table de la base de donnée : une table spip comme spip_auteurs, ou toute autre table.

En plus de l’identifiant de la lettre qui doit être envoyée, les paramètres de cette fonction sont ceux définis par l’API SQL de SPIP telle qu’utilisée par exemple par sql_select.

La requête doit au moins renvoyer les valeurs d’un champ ’email’. La fonction n’abonne pas ces emails mais leur adresse la lettre passée en paramètres. Si d’autres champs sont renvoyés par la requête, leur valeur peut être utilisée pour personnaliser chaque lettre en utilisant le formalisme habituel des raccourcis de personnalisation de spip-lettres : %%prenom%%, %%nom%%, %%civilite|Monsieur, Madame%%, ...

Export des abonnés

On peut exporter au format CSV :
-  les abonnés à un thème
-  les désabonnés

Mais là on peut pas, faut débuguer.