Principe
Mailman est un outil puissant de mailing liste http://www.gnu.org/software/mailman/. Il peut gérer plusieurs centaines, voir plusieurs milliers d’adresses e-mail, pour une seule liste de diffusion/ discussion. Il manquait à ma connaissance un plugin permettant de l’interfacer avec SPIP, voilà la chose faite.
Une partie de ce plugin est inspirée par le plugin Spip-Listes. Contrairement à ce plugin, Abomailmans laisse la gestion des abonnements, des désabonnements, l’envoi et l’échange d’e-mails à Mailman.
Ce plugin permet via une balise #FORMULAIRE_ABOMAILMAN
d’afficher un formulaire d’abonnement à l’ensemble des listes renseignées Mailman. Cette inscription se fait via l’interface privée de SPIP par le menu « Edition > Abomailmans > les listes de diffusions mailman » Ensuite il vous est possible de sélectionner des articles de votre SPIP, par des critères de date, de rubrique et/ou de mot clé et envoyer leurs contenus à ces listes, en utilisant des squelettes de mise en page du contenu.
Le lien avec les listes Mailman se fait par des envois d’e-mail.
Voici comment cela se présente sur la partie publique.
Installation
Copiez le répertoire abomailmans dans votre répertoire plugins, puis installez le plugin selon la procédure habituelle, cf. http://www.spip.net/fr_article3396.html.
Le plugin nécessite les plugins Facteur (spip 2 et spip 3) et spip-bonux (Spip 2)
Placez la balise #FORMULAIRE_ABOMAILMAN
dans vos squelettes la ou vous le souhaitez.
Ajouter des listes
Cliquez sur Les listes de diffusion dans le menu « Édition » de l’espace privé
Vous obtenez la page de la gestion de vos listes
Cliquez sur « Ajouter une nouvelle liste », vous obtenez la page d’ajout d’une liste
Renseigner ces champs, veuillez vérifier que l’adresse e-mail de votre liste est bien correcte.
L’ensemble des listes que vous aurez renseignées, vont apparaître dans votre site via la balise #FORMULAIRE_ABOMAILMAN
que vous aurez placé dans vos squelettes.
Envoyer du contenu de votre SPIP aux listes
À la page de la gestion de vos listes, cliquez sur « Envoyer un e-mail aux listes à partir du contenu de ce site »
Sélectionnez le modèle de présentation d’e-mail (« nouveautés » est présent par défaut). Les modèles se retrouvent dans /(...)/abomailmans/templates/ (Cf. Personnalisation). Vous pouvez choisir de lister :
- les articles à partir d’une date via « Contenu a partir de cette date »
- et les articles d’une rubrique via « Et lister les articles de la rubrique »
- et les articles liés à un mot clé via « Et lister les articles du mot clé »
Renseignez le sujet de votre e-mail, et introduisez le contenu issu du site. Cliquez sur « Aperçu ». Ensuite choisissez la liste à laquelle vous souhaitez envoyer cet aperçu
Utilisation par l’internaute
L’internaute saisi son Nom, son Prénom et son adresse e-mail (Obligatoire, un test PHP est effectué sur ce champ), et coche les listes auxquelles il souhaite s’abonner. Ensuite il reçoit éventuellement les demandes de confirmation du gestionnaire de liste. La gestion de son abonnement s’effectuera via ce gestionnaire de liste.
Personnalisation
Vous pouvez créer plusieurs modèles d’envoi d’e-mail à vos listes en les ajoutant dans votre répertoire /(...)/squelettes/templates/.
Ce sont de simples squelettes SPIP, faites attention aux points suivants :
- ne pas placer les balises d’ouverture et de fermeture html
- mettre les styles CSS directement dans les balises pour être sur qu’ils seront interprétés (même par les webmails)
- les urls et liens images doivent être convertis en urls absolues, utilisez pour ce faire le filtre
liens_absolus
Depuis la version 0.7, il est possible de créer aussi un template pour la version texte de votre e-mail. Si votre template de base s’appelle ma_newsletter.html, la version texte devra se nommer ma_newsletter.txt.html
Abonnement à une liste particulière
Il est possible de proposer un formulaire d’inscription ciblant une liste bien précise, au moyen de la balise #FORMULAIRE_ABOMAILMAN_MINI_UNE_LISTE
Exemple d’utilisation, pour permettre l’abonnement à la liste id n°1 :
#FORMULAIRE_ABOMAILMAN_MINI_UNE_LISTE{1}
Cas particulier du gestionnaire de liste EZMLM chez OVH avec de la fonction mail() de PHP
Chez OVH, dans le cas d’envois de mails via un script PHP, le Return-path est réécrit pour pouvoir comptabiliser les erreurs via un robot (gestion des spams). Or, EZMLM se base sur ce champ plutôt que sur le From. Du coup l’abonnement est impossible.
Pour palier à ce souci, Yffic avait fait une bidouille pour que le To soit sous la forme maliste-subscribe-lemail=ledomaine.tld@monsite.tld et que l’inscription fonctionne (voir ici). Il faut donc ajouter un define à votre fichier mes_options.php.
define('_ABOMAILMAN_ROBOT_EZMLM','true');
Ce problème est peut être présent chez d’autres hébergeurs...
Détails du code
- Utilisation de Jquery (inclus dans spip 1.9.2 et +) (http://jquery.com/)
- Utilisation du plugin JQuery date picker (inclus dans ce plugin) (http://www.kelvinluck.com/assets/jq...)
- Utilisation du plugin facteur pour Spip > 2
Évolutions envisagées
- Gestion de listes privées
- Pouvoir mettre en avant une seule liste
- Modifier le destinataire d’envoi dans le cas ezmlm pour que les inscriptions fonctionnent si facteur utilise l’envoi via la fonction mail() de php. En effet dans ce cas, le header return-path n’est pas renseigné. Or c’est ce header qui est utilisé par le robot pour répondre et non le champ from... Il faudrait modifier le destinataire comme ceci maliste-subscribe-lemail=ledomaine.tld@monsite.tld
Aucune discussion
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 : |