Motivation
Vous avez un site Spip et vous aimeriez pouvoir envoyer un mail à tous les rédacteurs et rédactrices de ce site ? Vous vous êtes sans doute renduE compte qu’il vous faut créer ailleurs une liste de diffusion, et demander aux auteurs de s’inscrire aussi à la liste. Si dans des sites comme la doc de Spip ou spip-contrib cela peut se comprendre : ce n’est pas la même chose de participer à la doc ou de chercher du support sur la liste ; dans d’autres cas les auteurs d’un site et les membres de la communauté qui échangent par mail sont les mêmes. Et dans tous les cas cela peut toujours être utile !
Cette contrib propose une manière de constituer, dans le gestionnaire de listes Sympa [1], une liste de diffusion dont les membres sont automatiquement tous les rédacteurs d’un site Spip.
Malheureusement (car il y a toujours des malqqchose), il vous faudra tout de même un accès à Sympa avec des droits élevés.
Sinon, si vous avez seulement accès à un hébergeur partagé « grand public », il vous faudra vous contenter d’une technologie qui tourne entièrement en PHP, comme la Bloogletter ou d’autres scripts d’envoi de mail en PHP.
L’intérêt, si l’on peut passer à Sympa (ou un autre mailinglist manager), sera de bénéficier d’une technologie plus adapté que le PHP à l’envoi de mails en masse et de l’ensemble de fonctionnalités de gestion d’une liste (archives, modération, ...).
Comment faire cela ?
C’est assez simple, dans Sympa, en administration d’une liste, on peut définir la « source de données » de la liste :
Concrètement, les configurations et commandes
Lorsque l’on est connecté comme listmaster à l’interface Web de Sympa WWS, à partir de la page d’une liste, en cliquant dans « Admin liste » sur le menu à gauche, puis sur « Configurer la liste » dans le menu horizontal, et enfin sur « Sources de données » dans le sous-menu, on peut définir la source des membres de la liste depuis une inclusion plutôt que dans la base données de Sympa :
Plus bas dans cette même page, on fournit les données d’accès à la base de données MySQL du site Spip, et l’instruction MySQL d’extraction des mails :
La chaîne complète de la requête SQL est :
SELECT <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9hdXRldXJzPC9jb2RlPg=="></span>.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZW1haWw8L2NvZGU+"></span> FROM <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9hdXRldXJzPC9jb2RlPg=="></span> WHERE statut != '5poubelle' AND statut != 'nouveau' AND email != ''
afin de ne sélectionner dans la base ni les auteurs qui sont à la poubelle, ni ceux qui ont essayé de s’inscrire mais ne se sont jamais connectés dans la base de donnée SPIP [2], ni ceux dont l’e-mail est vide.
Effectuez la mise à jour avec le bouton approprié à la fin de la page, et voilà, c’est fait ! Cliquez sur « Abonnés » et vous verrez la liste des mails des rédacteurs de votre site.
Il vous faudra bien sûr remplacer par le nom de votre base, votre login de connexion et donner le mot de passe d’accès à votre base de données SPIP. [3]
Rappelons que, du moins dans la configuration standard de Sympa, il vous faudra des droits avancés, à savoir être listmaster, du serveur. Pour cela, il vous faudra, sinon avoir votre propre serveur Sympa, du moins avoir un bon ami qui en a un et soit qui partage avec vous l’administration soit qui vous crée un robot virtuel dont vous êtes listmaster.
Variantes
Avec quelques modifications minimes de la requête MySQL, on peut extraire la liste des administrateurs :
SELECT <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9hdXRldXJzPC9jb2RlPg=="></span>.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZW1haWw8L2NvZGU+"></span> FROM <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9hdXRldXJzPC9jb2RlPg=="></span> WHERE statut = '0minirezo' AND email != ''
ou celle des visiteurs :
SELECT <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9hdXRldXJzPC9jb2RlPg=="></span>.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZW1haWw8L2NvZGU+"></span> FROM <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9hdXRldXJzPC9jb2RlPg=="></span> WHERE statut = '1comite' AND email != ''
ou toute autre sélection des utilisateurs (n’hésitez pas à proposer vos idées en commentaire de forum !).
information technique
La création d’une telle liste ajoutera dans le fichier config
de la liste les instructions suivantes :
user_data_source include
include_sql_query
passwd **************
db_name spip_belvil
db_type mysql
user belvil51
name site
sql_query SELECT <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9hdXRldXJzPC9jb2RlPg=="></span>.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZW1haWw8L2NvZGU+"></span> FROM spip_auteurs ...
host localhost
Si vous avez un accès ssh au serveur et des droits d’administration, vous pouvez aussi ajouter directement ces instructions. Dans une distribution Debian, ce fichier se trouve dans le répertoire /var/lib/sympa/expl/[nom_liste]
.
Discussions par date d’activité
3 discussions
Bonjour.
C’est domage de mettre cet article en archive.
Il n’est pas obsolète et permet d’utiliser une même base utilisateurs entre une mail liste et SPIP. C’est souvent indispensable dans une association.
En modifiant la requête d’interrogation, il est possible de ne sélectionner que les utilisateurs appartenant à une zone d’accès restreint. Il est ainsi possible de créer une mail liste sympa réservé au CA dans une association.
Répondre à ce message
Juste une remarque : le mode « include » est obsolète, il est maintenant conseillé d’utiliser le mode « include2 » de SYMPA.
http://www.sympa.org/wiki/manual/parameters-data-sources#data_source_related
Répondre à ce message
Salut Dani,
Article très utile. Un grand merci.
La seule étape qui me manque, est de donner le choix aux utilisateurs de recevoir ou pas la lettre d’info via une option à cocher dans l’interface de SPIP (voire choisir parmi plusieurs listes celle(s) auxquelles il souhaite s’abonner). Y’a moyen de faire ça assez facilement avec des champs EXTRA, mais c’est alors impossible de récupérer facilement les données avec un simple requête sql,...
Quelqu’un a une idée de la manière de faire ?
Par ailleurs, est-ce que quelqu’un sait s’il y a moyen de faire quelque chose de similaire avec Mailman ? (j’ai l’impression que c’est pas possible, mais on ne sait jamais).
à vous lire,
François
.
Une solution peut être d’essayer de faire l’inverse : configurer sur la liste Sympa le mode de réception : normal, nomail, digest, ...
Je sais que Sympa offre une interface webservice. Il faudrait essayer d’y accéder depuis une page SPIP... Idée à suivre...
Oui, en effet... pas simple de dé-sérialiser le contenu d’un champs EXTRA en SQL... Et avec les nouvelles possibilités de la 1.8 d’étendre les tables ?
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 :
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.
Suivre les commentaires : |