Fichier lisez-moi – Wanewsletter

Prenez le temps de lire ce fichier attentivement, il contient des informations utiles.

Sommaire

  1. Présentation
  2. Configuration requise
  3. Installation : Explications rapides
  4. Installation : Explications détaillées
  5. Mise à jour d’une version 2.3.x ou plus récente
  6. Mise à jour d’une version antérieure à la 2.3.0
  7. Traduction de l’application
  8. Problèmes connus
  9. Contribuer au projet
  10. Librairies tierces
  11. Notes de l’auteur

Présentation

Wanewsletter est un script de newsletter complet développé en PHP et utilisant une base de données.

L’installation a été simplifiée au maximum pour permettre une mise en production rapide. L’administration dispose de puissantes fonctionnalités et vous permet d'intervenir sur tous les aspects de vos listes de diffusion. De plus, Wanewsletter est disponible dans plusieurs langues.

Enfin, le script fonctionne aussi bien sur les bases de données MySQL que PostgreSQL ainsi que SQLite.

Liste détaillée des fonctionnalités :

Installation

  • Script d’installation automatisée fourni
  • Script de mise à jour à partir des versions 2.3.x également fourni.

Sécurité

  • Système d’authentification pour accéder à l’administration
  • Algorithme de hachage des mots de passe cryptographiquement sécurisé
  • Gestion multi-utilisateurs possible
  • Système de permissions avançé, par liste et/ou action effectuée
  • Support SSL/TLS pour les connexions aux serveurs SMTP et POP

Gestion des listes

  • Gestion Multi-listes de diffusion
  • Module de statistiques. Inscriptions par jour selon le mois et l’année donnée ou visualisation graphique du nombre d’abonnés selon les listes
  • Système de purge de la table des abonnés (pour les inscription non confirmées). Possibilité d’automatiser cette tâche
  • Confirmation d’inscription par email pour chaque liste (possibilité d’activer/désactiver cette option)
  • Possibilité de gestion des inscriptions/confirmation/desinscription par email (scan du compte POP à l’aide d’une tâche cron)

Gestion des envois

  • Intégration de TinyMCE
  • Simulation d’envoi
  • Prévisualisation des newsletters avant envoi
  • Support des envois d’emails multi-formats
  • Chargement possible de modèles de newsletters locaux ou par URL
  • Possibilité de programmer les envois à l’aide d’une tâche cron
  • Deux types d’envoi disponibles : Un email par destinataire, ou un email avec les destinataires en copie cachée, la liste étant le destinataire principal visible
  • Possibilité de sauvegarder une newsletter en cours de rédaction pour la reprendre plus tard
  • Possibilité de reprise d’un envoi et gestion par l’administrateur du nombre d’envois effectués en un flot
  • Option d’envoi directement via un serveur SMTP plutôt que par la fonction mail() de PHP
  • Système d’archivage des newsletters précédemment envoyées
  • Mécanisme de sécurisation des envois (anti-plantage)
  • Support des signatures DKIM

Fichiers joints aux envois

  • Gestion des fichiers joints ou incorporés aux newsletters
  • Possibilité d’utiliser des fichiers joints au sein d’une newsletter en HTML (fichiers embarqués)
  • Upload des fichiers joints ou ajout d’un fichier manuellement uploadé ou encore d’un fichier distant

Divers

  • Email d’alerte lors de nouvelles inscriptions et désinscriptions (option)
  • Module d’importation et d’exporation de masse de liste d’adresses emails
  • Support du format XML dans les modules d’importation et d’exportation
  • Modules de sauvegarde et restauration des tables du script (fichiers .sql)
  • Support des formats de compression zip, gzip et bz2 pour les modules d’importation, d’exportation, de sauvegarde et de restauration
  • Générateur de formulaire ou utilisation d’un formulaire fourni avec le script
  • Système de bannissement d’emails ou de types d’email. Fonctionne par listes
  • Système d’interdiction de certaines extensions de fichiers (pour les fichiers joints). Fonctionne par listes
  • Affichage du nombre d’inscrits à une ou plusieurs listes sur une page du site
  • Petit module de recherche dans la liste des abonnés
  • Export des archives pour publication sur le site
  • Système de tags

Configuration requise

Wanewsletter requiert PHP 7.1 au minimum ainsi qu’une base de données de type MySQL, PostgreSQL ou SQLite.

Base de données supportées

  • MySQL ≥ 5.0.7
  • PostgreSQL ≥ 8.3
  • SQLite 3

Certaines fonctionnalités secondaires peuvent ne pas être disponibles selon la configuration de votre serveur et/ou les options utilisées à la compilation de PHP. Voici la liste des extensions PHP utilisées dans diverses parties de Wanewsletter :

  • L’extension mysqli dans le cas d’une utilisation avec MySQL, pgsql dans le cas de PostgreSQL, sqlite3 ou PDO et le driver sqlite dans le cas de SQLite
  • La librairie GD pour la génération des images des statistiques dans la section statistiques
  • Les extensions simpleXML ou XML pour le traitement de fichier d’importation d’emails au format XML
  • Les extensions Zlib, Zip et Bz2 sont utilisées pour la compression des fichiers d’export ou de sauvegarde et pour la décompression des fichiers compressés dans ces formats fournis aux modules de restauration ou d’importation
  • L’extension OpenSSL pour le support des connexions SSL/TLS
  • L’extension JSON pour les sorties au format JSON des scripts cron.php, extra.php, newsletter.php, ainsi que pour la gestion dynamique des boucles d’envoi
  • Les extensions mbstring et intl sont également recommandées, bien que Wanewsletter soit fourni avec les paquets symfony/polyfill-mbstring et symfony/polyfill-intl-normalizer pour pallier à leur absence.

Installation : Explications rapides

Wanewsletter dispose d’un script d’installation simplifié au maximum afin de permettre aux néophytes de pouvoir utiliser le script rapidement. Voici brièvement les différentes étapes nécessaires à l’installation du script :

  • Uploadez les fichiers contenus dans l’archive sur votre FTP en respectant bien la structure des répertoires du script
  • Donnez les droits en écriture sur le répertoire data/
  • Appelez le fichier install.php dans votre navigateur
  • Complétez le formulaire qui s’affiche puis lancez l’installation
  • Une fois l’installation effectuée, retirez les droits en écriture sur le répertoire data/
  • Supprimez le script install.php devenu inutile
  • Donnez les droits en écriture sur les répertoires data/uploads/, data/stats/ et data/tmp/
  • Configurez votre serveur web pour qu’il interdise l’accès au répertoire data/ depuis internet !

Installation : Explications détaillées

Pour installer correctement Wanewsletter, vous devez commencer par placer les fichiers du script sur le serveur web. La plupart du temps, vous utiliserez pour cela un client FTP. Tous les fichiers doivent être uploadés en mode ASCII, hormis les quelques images utilisées par le script qui se trouvent dans les dossiers images/ et templates/images/. Les images doivent être uploadées en mode binaire.

Ensuite, vous devez donner les droits en écriture sur le répertoire data/ afin que le script puisse créer le fichier de configuration contenant les paramètres de connexion à la base de données qui seront fournis via le formulaire d’installation.

Donnez également les droits en écriture sur les répertoires data/uploads/, data/stats/ et data/tmp/.

Explications :

Le répertoire data/uploads/ est destiné à contenir les divers fichiers que vous joindrez éventuellement à vos envois. Pour que le script puisse ajouter correctement ces fichiers dans le dossier data/uploads/, celui-ci doit être accessible en écriture.

Concernant le répertoire data/tmp/, reportez-vous à l’entrée correspondante dans la FAQ du script.

Enfin, le répertoire data/stats/ contiendra les fichiers de statistiques de Wanewsletter nécessaires au module de statistiques. Ce répertoire est inutile si la librairie GD n’est pas disponible sur votre serveur (le module de statistiques étant alors désactivé).

Appelez ensuite le script d’installation install.php de Wanewsletter dans votre navigateur.

Vous arrivez maintenant sur le formulaire d’installation. Notez que si vous changez de langue avant de cliquer sur le bouton de validation, vous retomberez sur la même page, mais dans la langue choisie.

Le nom du serveur de base de données, la plupart du temps, est localhost mais cela peut être autre chose. Si vous n’avez pas connaissance du nom de votre base de données et/ou des paramètres d’accés nécessaires, renseignez vous auprès de votre hébergeur. Notez que seul le nom de la base de données est nécessaire. Par défaut, la tentative de connexion se fait sur localhost et avec l’utilisateur faisant tourner le serveur web. Il vous est également demandé un prefixe pour les tables, ceci afin d’éviter d’éventuels conflits avec d'autre tables déja présentes, et qui auraient le même nom qu’une des tables de Wanewsletter.

Vous devez ensuite entrer des paramètres pour l’administration du script, son accès étant protégé. Vous pourrez ultérieurement ajouter d’autres utilisateurs avec des droits d’accès personnalisés.

Une fois que l’installation est terminée, retirez les droits en écriture sur le répertoire data/ (mais pas sur ses sous-dossiers) et supprimez le fichier install.php du serveur. Il vous suffit de suivre le lien donné sur la page de résultat de l’installation pour accéder à l’écran de connexion à l’administration. Entrez vos identifiants de connexion fournis lors de l’installation et commencez à gérer vos listes et vos abonnés !

Important : Configurez votre serveur web pour qu’il interdise l’accès au répertoire data/ depuis internet !

Mise à jour d’une version 2.3.x ou plus récente

Pour mettre à jour votre version :

  • Téléchargez la nouvelle version
  • Remplacez les fichiers de votre version par ceux de la nouvelle (gardez bien sûr le contenu du répertoire data/)
  • Donnez les droits en écriture sur le fichier data/config.inc.php
  • Appelez le script admin/upgrade.php dans votre navigateur
  • Saisissez si nécessaire vos identifiants de connexion avant d’accéder au script de mise à jour. Il ne vous reste plus qu’à lancer la procédure

Une fois la mise à jour terminée, retirez les droits en écriture sur le fichier data/config.inc.php.

Note : Il est fortement recommandé de faire une sauvegarde des tables du script avant de lancer la mise à jour !

Mise à jour d’une version antérieure à la 2.3.0

À partir de la branche 2.4.x, Wanewsletter n’offre plus de script de mise à jour pour les versions 2.0.x et 2.1.x. La version 3.1.0 a retiré la mise à jour possible des versions 2.2.x. Vous pouvez cependant faire une mise à jour en deux temps, d’abord vers la version 2.3.4, puis de là, mettre à jour vers la présente version.

Traduction de l’application

Mon but étant de rendre Wanewsletter disponible au plus grand nombre, le script a été développé de manière à être disponible dans plusieurs langues, pas seulement en français. Les langues disponibles peuvent être trouvées sur la page de téléchargement de Wanewsletter.

Pour installer une langue, c’est très simple. Décompressez l’archive puis placez le dossier résultant (ex: sp/, it/) dans le répertoire languages/ de Wanewsletter. Il ne vous reste plus alors qu’à sélectionner cette langue dans la configuration du script  :¬) (le français et l’anglais sont livrés par défaut avec le script)

Si vous avez des connaissances dans une langue dans laquelle n’est pas traduit Wanewsletter, et que vous souhaitez aider à promouvoir Wanewsletter, c’est très simple. Récupérez le paquet de langue de votre choix, puis effectuez la traduction et envoyez-là à wascripts(webnaute.net. La nouvelle langue sera alors mise à disposition en téléchargement, après vérification.

Problèmes connus

  • Sur free.fr, les envois d’emails (en nombre de destinataires) sont limités à une certaine quantité par semaine (consultez la FAQ de cet hébergeur.

Contribuer au projet

Vous pouvez contribuer à Wanewsletter, et ce, de différentes façons :

Vous pouvez traduire Wanewsletter dans une langue dans laquelle le script n’est pas encore disponible. Cela permettra à de nombreux utilisateurs de Wanewsletter de disposer d’une interface d’administration dans leur langue native et cela favorisera la diffusion de Wanewsletter dans le monde. Consultez la section spécifique aux traductions.

Si vous êtes un utilisateur satisfait de Wanewsletter, souhaitez remercier son développeur et soutenir son développement, vous pouvez également faire un don via le service Paypal. Le formulaire de don est disponible dans le menu à droite sur la page de présentation de Wanewsletter.

Ou bien vous pouvez envoyer un chèque à l’adresse suivante, en indiquant, si possible, si vous souhaitez apparaitre ou non dans la liste des donateurs :

M. Aurélien Maille
3, quai Valin
Résidence « Les éclusiers »
17 000 La Rochelle

Librairies tierces

Wanewsletter utilise quelques librairies supplémentaires pour assurer son bon fonctionnement. Ces librairies sont installées dans le dossier vendor/ de Wanewsletter et sont gérées grâce au gestionnaire de dépendances PHP Composer (d’où la présence des fichiers composer.json et composer.lock à la racine). Voici la liste des librairies utilisées :

symfony/polyfill-mbstring
Librairie implémentant l’extension PHP mbstring si elle n’est pas installée sur le serveur.
symfony/polyfill-intl-normalizer
Librairie implémentant la classe Normalizer si l’extension PHP intl n’est pas installée sur le serveur.
wascripts/wamailer
Librairie de formatage et d’envoi d’emails, écrite par mes soins.
tinymce/tinymce
Éditeur de code HTML écrit en JavaScript
macroman/terminal-progress-bar
Petite librairie permettant l’affichage d’une barre de progression animée en ligne de commande.

Notes de l’auteur

Ce script est diffusé sous licence GPL. Concrètement, cela signifie que vous pouvez l’utiliser, le modifier ou le redistribuer comme bon vous semble, du moment que les copyright et mentions d’auteur restent tels quels. Lisez attentivement la licence GPL pour plus de détails.

Ce script ne contient aucune forme de publicité dans les emails (mentions en bas des emails ou autre). Mais vous pouvez, si vous le désirez et êtes satisfait de ce script, mettre un lien vers le site phpCodeur quelque part sur votre site (en bas du formulaire d’inscription par exemple). Un bouton 88×31 de Wanewsletter est également disponible dans le répertoire images/ pour ceux qui le souhaitent.