Liste SYMPA des rédacteurs d’un site SPIP

All contributions published for previous SPIP versions

Comment configurer dans SYMPA une liste de distribution de tous les rédacteurs d’un site SPIP.

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 `spip_auteurs`.`email` FROM `spip_auteurs` 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 `spip_auteurs`.`email` FROM `spip_auteurs` WHERE statut = '0minirezo' AND email != ''

ou celle des visiteurs:

SELECT `spip_auteurs`.`email` FROM `spip_auteurs` 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 `spip_auteurs`.`email` 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].

Footnotes

[1Un gestionnaire de listes très performant, libre, édité par les universités françaises.

[2Si votre site ne propose pas les inscriptions automatiques, vous pouvez omettre ce test.

[3Si vous avez accès au serveur MySQL, vous pouvez définir un autre utilisateur qui n’ait accès qu’en lecture à cette seule table.

Portfolio

updated on 21 January 2007

Discussion

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.

    Reply to this 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

    Reply to this message

  • 1

    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

    • 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)

      .

      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...

      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,...

      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?

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom