Voici une liste des questions les plus fréquemment posées, et les réponses correspondantes.
Pour cela, insérez simplement cette ligne de code à l’endroit où vous voulez afficher le nombre d’inscrits (prenez soin de mettre la bonne adresse vers le fichier extra.php) :
<script type="text/javascript" src="http://www.yourdomaine.com/rep/options/extra.php?liste=[ID]"></script>
Vous devez remplacer [ID]
par le numéro identifiant
de la liste de diffusion dont vous voulez afficher le nombre d’inscrits. Vous pouvez
également indiquer plusieurs identifiants de liste en les séparant par un signe plus.
Un tel bloc de script affichera immédiatement le nombre d’inscrits en utilisant
l’instruction JavaScript document.write(string);
. Si vous souhaitez
simplement récupérer le nombre d’inscrits pour un traitement ultérieur, ajoutez
simplement le paramètre use-variable dans l’URL d’appel du script.
Le nombre d’inscrits ne sera dans ce cas pas afficher mais disponible dans une
variable nommée numSubscribe
.
Pour être prévenu de la sortie d’une nouvelle version, ou de la découverte (improbable ? :¬) ) d’une faille de sécurité, passez de temps en temps sur le site phpCodeur, ou plus simplement, inscrivez vous à la mailing liste de Wanewsletter.
Un utilitaire d’importation d’emails est disponible dans la rubrique "outils" de Wanewsletter. Il vous permettra, si vous avez les droits suffisants, d’importer des emails directement via un champ texte, en spécifiant l’adresse du fichier sur le serveur, ou via l’upload d’un fichier contenant les emails, si votre hébergeur autorise l’upload de fichiers.
L’utilitaire accepte également les fichiers au format XML tels que générés par l’outil d’exportation. Un tel fichier a la structure suivante :
<?xml version="1.0"?>
<!-- Date : [la date] GMT - Format : [le format] -->
<Wanliste>
<email>address1@example.tld</email>
<email>address2@example.tld</email>
<email>…</email>
</Wanliste>
L’utilitaire d’importation a été testé avec des importations de masse allant
jusqu’à 5000 emails (Ce nombre devrait être suffisant). Au pire, vous pouvez
toujours découper l’importation en plusieurs fois pour assurer le succés de l’opération.
Une autre solution pour importer plus de 5000 emails en une importation consiste à
modifier la valeur de la constante MAX_IMPORT
dans le
fichier constantes.php mais ceci n’est pas recommandé !
Le script se charge de vérifier chacun des emails, ainsi que d’éliminer les éventuels doublons. Si des emails sont refusés, le script génèrera un rapport et le sauvegardera dans le répertoire de fichiers temporaires du script (tmp/ par défaut).
Wanewsletter peut être géré par plusieurs utilisateurs. Vous pouvez modifier les permissions des utilisateurs via le profil de l’utilisateur en question.
Il y a deux niveaux généraux : administrateur et utilisateur. Les administateurs ont automatiquement tous les droits, quelques que soient les réglages sur les droits individuels. Un utilisateur pourra faire tout ce qui lui aura été permis (voir, editer, supprimer, envoyer des newsletter, importer, exporter, bannir, et joindre des fichiers) et ce, pour chaque liste.
Pour ajouter un utilisateur, rendez-vous dans la section "Utilisateurs" puis "ajouter un utilisateur"
Vous disposez d’un formulaire par défaut, le fichier subscribe.php (note aux possesseurs de versions 2.0.x ou 2.1.x, le nom a changé et n’est plus suscribe.php, dont l’orthographe n’était pas correcte, pensez à changer vos éventuels liens pointant sur ce fichier). Le fichier subscribe.php affiche un formulaire classique, et une liste de sélection affichant les noms de toutes les listes de diffusion publiques créées.
Le script dispose également d’un générateur de formulaire dans la section "outils". Celui ci vous permettra, pour une liste donnée, de générer le formulaire adéquat. Il ne vous restera qu’à placer ce formulaire où vous voulez sur le site, de placer le code d’inclusion de newsletter.php (code également fourni par le form. generator) et d’indiquer dans les réglages de la liste de diffusion en question l’adresse du formulaire.
Une dernière solution (disponible à partir de la version 2.2-RC1) consiste pour le visiteur à envoyer un email à l’adresse email d’une liste, avec comme sujet de l’email "Inscription" (insensible à la casse). Dans ce cas, vous devez avoir accès à cron (serveurs unix et équivalents) ou faire appel aux services gratuits de webcron.org pour automatiser l’appel au fichier cron.php qui se trouve dans le répertoire options/ du script. Ce script se chargera d’effectuer les tâches nécessaires (inscription, désinscription, changement de format, confirmation d’inscription..) selon les emails reçus.
Pour une désinscription, l’abonné devra envoyer un email avec pour sujet "Desinscription" (sans accents !), il recevra alors un email lui demandant de renvoyer un autre email avec le meme sujet, et le code son compte, qui lui aura été fourni (par sécurité). Pour la confirmation d’inscription (si la liste le demande), ce devra être un email avec pour sujet "confirmation", et pour le changement de format, le sujet devra être "setformat".
Si plusieurs de vos listes de diffusion utilisent la même adresse email, il risque d’y avoir conflit, le script ne sachant pas à quelle liste seront adressés les emails du compte POP. Dans ce cas, il vous faudra créer un alias de l’adresse en question avec le panneau de gestion de votre hébergement, si vous en avez la possibilité (cela exclut les hébergeurs gratuits). Exemple :
Vous avez deux listes utilisant l’adresse email mailing@domaine.com. Il vous faudra créer deux alias renvoyant sur mailing@domaine.com et indiquer ces alias dans les réglages des listes concernées. Par exemple : mailing-1@domaine.com et mailing-2@domaine.com
Dans le cas de l’option "cron", vous devrez indiquer les paramètres d’accès au compte POP de l’adresse email de la liste en question, et indiquer l’utilisation de l’option "cron" avec le bouton radio adéquat (section "listes" de l’administration).
Enfin, cron devra appeller une adresse de ce type :
http://www.yourdomain.com/rep/newsletter/options/cron.php?mode=validate&liste=[ID_de_la_liste]
Wanewsletter dispose de deux méthodes d’envoi pour pouvoir être utilisé par le plus grand nombre. En effet, certains hébergeurs limitent le nombre d’emails envoyés par jour (ex: multimania/lycos), ou n’acceptent qu’un destinataire par email (ex: online).
Utiliser la premiere méthode d’envoi (emails en copie cachée) peut faire plus professionnel (c’est mon avis personnel). D’un autre coté, en utilisant la deuxième méthode d’envoi, les destinataires verront leur adresse email en destinataire principal. De plus, l’adresse de désinscription pointera avec les bons paramètres, au lieu de simplement pointer sur le formulaire d’inscription/désinscription de la liste.
En définitive, c’est à vous de choisir ce qui vous conviendra le mieux ;-)
Note : Le script détectera automatiquement si l’hébergeur est Online. Si c’est le cas, la seconde méthode d’envoi (un abonné = un email) sera utilisée automatiquement.
Le répertoire temporaire du script, tmp/ par défaut, peut être utilisé par le script dans certains cas précis :
safe mode
est activé sur votre serveur
ou qu’il y a une restriction au niveau de open_basedir
,
le script doit déplacé certains fichiers uploadés dans le répertoire tmp/
avant de pouvoir les lirestocker le fichier sur le serveur, le script créé le fichier dans le répertoire tmp/
Le nom du répertoire tmp/ peut être modifié, sous réserve de l’indiquer
dans le fichier admin/pagestart.php (cherchez la ligne $tmp_name = 'tmp';
).
Dans le cas où l’upload de fichier est autorisé sur votre serveur, cela peut être dù au fait que le script n’a pas les droits en écriture sur le répertoire de stockage des fichiers joints ou que les paramètres d’accès au serveur FTP ne sont pas corrects (si option choisie). Vérifiez donc le chmod ou les attributs de ce répertoire ou vérifiez les paramètres d’accès au FTP.
Si l’upload n’est pas autorisé, le script n’ajoute le fichier à la liste des fichiers joints que si celui ci est déja présent sur le serveur, dans le répertoire de stockage des fichiers joints. Uploadez vos fichiers joints avec votre client FTP avant d’ajouter vos fichiers joints via le formulaire.
Malheureusement, utiliser l’option SMTP de Wanewsletter ne permet pas d’envoyer des emails à d’autres personnes qu’au domaine du serveur SMTP choisi si vous n’êtes pas vous-même identifié comme faisant partie de ce domaine (C’est une restriction du serveur SMTP (refus du relayage), non de Wanewsletter).
Exemple :
Vous mettez smtp.wanadoo.fr comme serveur SMTP
dans la configuration de Wanewsletter. Si le serveur SMTP ne vous identifie
pas comme faisant partie du domaine wanadoo, vous ne pourrez envoyer
d’emails qu’à des adresse de type blablabla@wanadoo.fr.
L’alternative est que le serveur SMTP que vous voulez utiliser gère l’authentification, c’est à dire, reconnaisse la commande AUTH LOGIN (cf : la RFC 2554). Dans ce cas précis, vous pourrez spécifier dans la configuration de la newsletter le login et le mot de passe d’accès au serveur.
Intégrer le formulaire d’inscription sur votre site, en l’appellant tout simplement à l’aide d’une popup, est très simple. Le code est le suivant :
<a href="chemin_vers_rep/subscribe.php"
onclick="window.open(this.href, 'mailing', 'width=400, height=300, topmargin=2, left=100, top=100, toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=1, copyhistory=0, menuBar=0'); return false;">
Newsletter
</a>
Et vous devez comme url absolu vers le formulaire, pour les listes concernées, l’url absolue vers le fichier subscribe.php (http://yourdomaine.com/rep/subscribe.php). Attention cependant, lorsque le nouvel inscrit cliquera pour confirmer son inscription, ou s’il se désinscrit via le lien présent dans la newsletter, subscribe.php apparaitra en pleine page.
Pour vérifier la validité des adresses emails fournies à l’inscription, le script vérifie leur validité syntaxique. Certains caractères ne peuvent être présents et l’adresse email doit contenir le signe arobase. Vous pouvez régler le script pour qu’une vérification approfondie soit effectuée (voir configuration).
Cette vérification approfondie consiste à contacter les serveurs de mail dont dépend le domaine de l’adresse email concernée et à réaliser un envoi factice. Selon la réponse renvoyée par le serveur, on peut savoir si l’adresse email concernée n’est pas valide.
Cette méthode est loin d’être infaillible. De nombreux serveurs ne renvoient pas d’erreur pour une adresse email non valide au moment où ils sont contactés. Au lieu de cela, les erreurs sont traitées ultérieurement, au niveau du serveur POP. De plus, le ou les serveurs de mail trouvés peuvent ne pas être accessibles au moment où la personne s’inscrit à votre liste de diffusion. Dans le doute, l’adresse email est alors considérée comme valide.
En bref, cette fonctionnalité ne sert pas à valider les adresses email lors des inscriptions, mais plutôt à rejeter immédiatement les adresses emails pour lesquelles on est sùr de la non-validité.
Pour changer le nom du répertoire stats/
, c’est simple, éditez le
fichier includes/functions.stats.php et modifiez la ligne suivante :
define('WA_STATSDIR', WA_ROOTDIR . '/stats');
Le script donne la possibilité de réaliser vos envois de newsletters avec cron.
C’est très simple, il suffit d’appeler l’adresse suivante :
http://www.yourdomaine.com/rep/options/cron.php?mode=send&liste=[ID]
La partie du domaine et du chemin d’installation est à régler par vos soins.
Vous devez là aussi remplacer [ID]
par l’identifiant
de la liste concernée.
Note :
À partir de Wanewsletter 2.3, un module expérimental utilisable en ligne de comande est disponible dans le répertoire contrib/. Vous devez donner les droits d’exécution sur le fichier contrib/wanewsletter (ou passer par l’exécutable PHP).
Voici la commande pour lancer un envoi pour une liste donnée :
$ /path/to/contrib/wanewsletter --process-send=1
Avec 1
l’identifiant de la liste concernée dans cet exemple.
Par défaut, le script enverra tous les emails en faisant une pause de 10 secondes tous les 400 emails pour éviter d’engorger le serveur de mail. Ces deux valeurs (10 et 400) sont modifiables en éditant le fichier contrib/wanewsletter et en changeant la valeur des deux constantes concernées en début de fichier.
Si vous ne souhaitez pas envoyer tous les emails à la suite, vous pouvez utiliser le paramètre --limit pour indiquer le nombre d’emails maximum à envoyer.
Pour utiliser les tags personnalisés (à l’instar de {LINKS}
ou {NAME}
),
éditez le fichier tags.inc.php avec un simple éditeur de texte. Vous devriez trouver ceci au début
du fichier :
//$other_tags[$t]['column_name'] = '';
//$other_tags[$t]['field_name'] = '';
//$other_tags[$t]['tag_name'] = '';
//$t++;
Wanewsletter ne gère pas automatiquement les tags personnalisés. C’est à dire que c’est à vous de rajouter le champs voulu dans la table prefixe_abonnes, puis de spécifier le tag dans includes/tags.inc.php pour que le script effectue le remplacement du tag par sa valeur lors de l’envoi.
Exemple :
Vous souhaitez pouvoir mettre un tag {ADDRESS}
dans vos newsletters, lequel sera remplacé
par l’adresse de l’abonné. Après avoir ajouté un champs nommé par exemple abo_address dans
la table prefixe_abonnes, vous placerez les données du tag dans
includes/tags.inc.php (en ayant décommenté les lignes que j’ai données plus haut),
comme ci dessous :
$other_tags[$t]['column_name'] = 'abo_address';
$other_tags[$t]['field_name'] = '';
$other_tags[$t]['tag_name'] = 'ADDRESS';
$t++;
Vous souhaitez maintenant ajouter un autre tag ? Reproduisez simplement la même opération.
Pour que vos abonnés puissent ajouter ces données dans leur profil, le panneau de gestion
de profil doit être activé (voir configuration générale). Vous devez modifier le template
editprofile_body.tpl présent dans le répertoire templates/ du script.
Ajoutez les champs text nécessaires en prenant soin de leur donner le nom de la colonne à
laquelle il se rapporte.
Exemple en se basant sur les tags des exemples précédents :
<table class="content">
<tr>
<td class="row1"><label>{L_EMAIL} :</label></td>
<td class="row2"><span class="texte">{EMAIL}</span></td>
</tr>
<tr>
<td class="row1"><label for="pseudo">{L_PSEUDO} :</label></td>
<td class="row2"><input type="text" id="pseudo" name="pseudo" value="{PSEUDO}" size="30" maxlength="30" class="text" /></td>
</tr>
<tr>
<td class="row1"><label for="abo_address">Votre adresse :</label></td>
<td class="row2"><textarea id="abo_address" name="abo_address" rows="4" cols="50" class="text">{ADDRESS}</textarea></td>
</tr>
<tr>
<td class="row1"><label for="abo_birthday">Anniversaire :</label></td>
<td class="row2"><input type="text" id="abo_birthday" name="abo_birthday" value="{BIRTHDAY}" size="30" maxlength="30" class="text" /></td>
</tr>
<tr>
<td class="row1"><label for="language">{L_LANG} :</label></td>
<td class="row2">{LANG_BOX} </td>
</tr>
<!-- BEGIN password -->
<tr>
<td class="row1"><label for="current_pass">{password.L_PASS} :</label></td>
<td class="row2"><input type="password" id="current_pass" name="current_pass" size="30" maxlength="32" class="text" /></td>
</tr>
<!-- END password -->
<tr>
<td class="row1"><label for="new_pass">{L_NEW_PASS} :</label></td>
<td class="row2"><input type="password" id="new_pass" name="new_pass" size="30" maxlength="30" class="text" /></td>
</tr>
<tr>
<td class="row1"><label for="confirm_pass">{L_CONFIRM_PASS} :</label></td>
<td class="row2"><input type="password" id="confirm_pass" name="confirm_pass" size="30" maxlength="30" class="text" /></td>
</tr>
</table>
Note : Vous ne pouvez pas utiliser les tags personnalisés avec le moteur d’envoi en copie cachée
Cette fonctionnalité était demandée par plusieurs utilisateurs de Wanewsletter.
Pour définir une langue à utiliser avec le formulaire (sous réserve que cette langue soit
installée dans Wanewsletter), il vous suffit d’ajouter la ligne suivante dans le code
d’inclusion de newsletter.php qui est fourni par le générateur de formulaire :
$language = 'francais';
Note : Ce code doit être ajouté avant l’inclusion du
fichier newsletter.php (avant include()
)
Wanewsletter peut fonctionner avec les bases de données SQLite à partir de sa version 2.3.0.
Vous devez vous assurer avant de débuter l’installation que le répertoire sql/ de Wanewsletter lui est accessible en lecture et écriture. En effet, c’est dans ce répertoire que sera créé par défaut la base de données sqlite de Wanewsletter.
Libre à vous de choisir par la suite un emplacement plus adapté. Il vous suffira de déplacer le fichier wanewsletter.sqlite du répertoire sql/ vers son nouvel emplacement et d’indiquer celui-ci dans le fichier includes/config.inc.php.
Consultez le fichier readme du script.
Cela peut être dù à des restrictions au niveau de la configuration de PHP.
C’est typiquement le cas lorsque le safe_mode
est activé.
Dans cette configuration, Wanewsletter ne peut renseigner le cinquième argument
de la fonction mail()
de PHP et donc préciser clairement
au programme d’envoi l’adresse email à utiliser pour les retours d’erreurs.
Oui, c’est possible. Vous devez pour cela éditer le fichier admin/envoi.php
et remplacer FALSE
par TRUE
à la ligne 54 :
define('DISABLE_CHECK_LINKS', FALSE);
N’oubliez pas que permettre aux abonnés à vos listes de se désinscrire simplement
et rapidement si tel est leur souhait est une obligation légale (1).
Aussi, et sauf cas particuliers, vous ne devriez pas retirer ces liens des lettres
que vous envoyez, et donc changer la valeur de cette constante.
(1) Au moins en France, en application de l’article 22 de la loi n° 2004-575 du 21 juin 2004 pour la confiance dans l’économie numérique (LCEN).
Vous les trouverez dans le répertoire language/email_{votre_langue}/.
Cette fonctionnalité a fait l’objet d’une forte demande par les utilisateurs de Wanewsletter et a donc été implémentée dans Wanewsletter 2.3.
Le chargement de modèles de newsletters par URL est très simple à
utiliser. Indiquez simplement l’adresse du modèle au format texte et/ou
celle du modèle au format HTML dans les champs correspondants lorsque
vous êtes sur la page de chargement des newsletters (lien charger une newsletter
dans la page d’envoi).
Le script rapatriera alors le contenu de chacune des URLs fournies et effectuera une conversion automatique vers le jeu de caractère de Wanewsletter si les données sont encodées en UTF-8.
Dans le cas d’un modèle au format HTML, Wanewsletter récupèrera le
contenu d’un éventuel élément <title/>
présent dans l’en-tête
de la page et l’utilisera comme sujet du modèle. Une balise <base>
sera également ajoutée dans l’en-tête du modèle pour assurer le bon fonctionnement
des URLs relatives.
Rendez-vous sur la page de téléchargement de Wanewsletter. Le paquet de langue vous concernant y est peut-être disponible.
Consultez également le fichier readme du script.
Les modifications doivent être faites dans le fichier templates/subscribe_body.tpl.
Cette fonctionnalité de Wanewsletter nécessite la présence sur le serveur d’une
librairie tierce, Archive_Tar
, disponible dans PEAR.
Vérifiez (éventuellement avec votre hébergeur) que PEAR est correctement
installé sur le serveur (Archive_Tar
fait partie des librairies requises pour le
bon fonctionnement de PEAR donc pas de souci de ce coté là) et que le chemin
d’inclusion de PHP (include_path
) contient bien le chemin du
répertoire d’installation de PEAR.
Si vous n’avez pas la main sur le serveur et que votre hébergeur ne souhaite pas installer
PEAR, rendez-vous sur le site
pear.php.net et récupérez les paquets PEAR
et Archive_Tar
.
Ouvrez-les et récupérez dans le premier le fichier PEAR.php et dans le second
le fichier Tar.php. Placez le fichier PEAR.php dans le répertoire
admin/ de Wanewsletter et le fichier Tar.php dans le répertoire
admin/Archive/ que vous aurez préalablement créé.
Note : Si vous préférez le format zip, plus répandu, Wanewsletter
acceptera tout aussi bien de travailler avec la librairie Archive_Zip
, également
disponible dans PEAR. Pour cela, éditez le fichier includes/constantes.php
et indiquez Zip
en lieu et place de Tar
comme valeur pour la constante
EXPORT_FORMAT
.
Vous avez dù oublier de configurer correctement votre liste de diffusion. Indiquez une valeur correcte pour l’option "URL absolue de la page où se trouve le formulaire".
Parfois, le répertoire d’installation de Wanewsletter peut se trouver dans une partie du site déjà protégée par une authentification HTTP. Dans ces cas-là, il est fastidieux de devoir s’authentifier à nouveau lorsque l’on arrive dans l’administration de Wanewsletter.
Wanewsletter tient compte de ce fait et détecte désormais une éventuelle session
HTTP en cours lorsque vous arrivez la première fois sur l’administration.
Si une telle session
existe, Wanewsletter tentera de vous connecter automatiquement
à l’administration avec la paire login/mot de passe ayant servi à démarrer la session
HTTP. Bien entendu, ce mécanisme ne peut aboutir que si un administrateur avec
le même couple login/mot de passe existe dans Wanewsletter.
Attention, PHP, installé en mode CGI, ne gère pas correctement
l’authentification HTTP et les variables PHP_AUTH_USER
et
PHP_AUTH_PW
ne sont pas disponibles. Pour remédier à cela, placez le bloc
suivant dans un fichier .htaccess (nécessite le module apache mod_rewrite
) :
RewriteEngine on
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
Note : Si pour une raison ou une autre, vous souhaitez désactiver
cette fonctionnalité, éditez le fichier includes/constantes.php et mettez
à false
la constante ENABLE_HTTP_AUTHENTICATION
.
Note : Notez que seule l’authentification HTTP Basic est supportée.
Wanewsletter propose aussi l’utilisation de tags spéciaux dits tags d’inclusion
.
Le principe est d’indiquer une url ou un chemin de fichier, le contenu du fichier ciblé
étant ajouté à la newsletter lorsque celle-ci est mise en attente d’envoi.
texte quelconque...
<?inclure src="/path/to/file"?>
fin de newsletter...
Ce mécanisme prend tout son sens par exemple lorsque l’URL indiquée cible un script serveur générant du contenu.
Si vous souhaitez que l’inclusion soit faite dès la sauvegarde suivante, utilisez l’attribut "tds" avec "true" pour valeur :
texte quelconque...
<?inclure src="/path/to/file" tds="true"?>
fin de newsletter...
Note : Pour les anglophiles,
<?include src="/path/to/file" now="true"?>
est aussi utilisable ;¬)
Note : Ce système n’est pas compatible avec les tags personnalisés décrits plus haut. Ne mettez donc pas de {TAGNAME} dans le chemin de fichier ou l’url.