FAQ - WAnewsletter 2.2.5

Voici une liste des questions les plus fréquemment posées, et les explications correspondantes.

Sommaire

  1. Comment afficher le nombre d'inscrits sur mon site ?
  2. WAnewsletter, un script multilingue ?
  3. Comment être prévenu de la sortie d'une nouvelle version ?
  4. Comment fonctionne l'importation d'emails ?
  5. Comment gérer le script à plusieurs ?
  6. Mais où se trouve le formulaire d'inscription ?
  7. Pourquoi y a-t-il deux moteurs d'envoi ?
  8. Dossier temporaire du script, safe mode et open_basedir
  9. Impossible de joindre des fichiers à mes newsletter !
  10. Utilisation d'un serveur smtp pour les envois d'emails
  11. Appeller le formulaire d'inscription via une popup
  12. Méthodes de validation des adresses emails
  13. Changement du nom du dossier des statistiques
  14. Envoi des newsletters avec cron
  15. Utilisation de tags personnalisés
  16. Définir une langue selon le formulaire

I. Comment afficher le nombre d'inscrits sur mon site ?

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.

II. WAnewsletter, un script multilingue ?

Notre but étant de rendre WAnewsletter disponible au plus grand nombre, le script gère donc différentes langues. Si vous avez des connaissances dans une langue dans laquelle n'est pas traduit le script, et que vous souhaitez aider à promouvoir WAnewsletter, c'est très simple. Récupérez le package de votre choix, puis effectuez la traduction et envoyez là à cette adresse. La nouvelle langue sera alors mise à disposition en téléchargement, après vérification.

III. Comment être prévenu de la sortie d'une nouvelle version ?

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.

IV. Comment fonctionne l'importation d'emails ?

Un utilitaire d'importation est disponible dans la rubrique "importation". Il vous permettra, si vous avez les droits suffisants, d'importer des emails d'abonnés directement via un champ texte, en spécifiant l'adresse du fichier sur le serveur, ou via l'upload du fichier qui contient les emails, si votre hébergeur autorise l'upload de fichiers.

L'utilitaire d'importation a été testé avec des importations de masse allant jusqu'à 2500 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 2500 emails en une importation consiste à modifier la valeur de la constante MAX_IMPORT dans le fichier constantes.php mais c'est à vos risques et périls !

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 tentera d'écrire un fichier explicatif dans le dossier temporaire du script, que vous pourrez ensuite télécharger.

V. Comment gérer le script à plusieurs ?

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

VI. Mais où se trouve le formulaire d'inscription ?

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 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 dossier 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]

VII. Pourquoi y a-t-il deux méthodes d'envoi ?

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 ramener sur le formulaire.

En définitive, c'est à vous de choisir ce qui vous conviendra le mieux ;-)

Note : Les personnes étant hébergées sur Online doivent utiliser la deuxième méthode d'envoi (un abonné = un email)

VIII. Dossier temporaire du script, safe mode et open_basedir

Le dossier temporaire du script, tmp/ par défaut, peut être utilisé par le script dans certains cas précis :

Si vous êtes dans l'un de ces cas (e.g : open_basedir) ou que vous souhaitez utiliser les possibilités du script (e.g : stockage fichier d'export sur le serveur), alors le dossier tmp/ est nécessaire et doit être accessible en écriture.

Le nom du dossier tmp/ peut être modifié, sous réserve de l'indiquer dans le fichier admin/pagestart.php (cherchez la ligne $tmp_name = 'tmp'; ).

IX. Impossible de joindre des fichiers à mes newsletter !

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 dossier 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 dossier 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 dossier de stockage des fichiers joints. Uploadez vos fichiers joints avec votre client ftp avant d'ajouter vos fichiers joints via le formulaire.

X. Utilisation d'un serveur smtp pour les envois d'emails

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.

XI. Appeller le formulaire d'inscription via une popup

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

XII. Méthodes de validation des adresses email

Cette fonctionnalité n'est pas disponible dans la version 2.2.5 et dans les prochaines versions mineures.

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ésent et l'email doit contenir le signe arobase et au moins un point.

Vous pouvez régler le script pour qu'une vérification approfondie soit effectuée (voir configuration). La validation approfondie extrait le nom de domaine de l'email, puis effectue une recherche dessus pour vérifier que ce domaine dispose bien d'un enregistrement MX.

Si c'est le cas, le script tente de se connecter au serveur SMTP (si la connexion échoue, le script testera sur le serveur smtp suivant, etc ) puis envoie les commandes pour simuler un envoi. Si le serveur smtp accepte de réaliser l'envoi (rien n'est envoyé, le script ne terminera pas avec la commande adéquat), l'email fait bien partie de son domaine.

Cette dernière vérification n'est toutefois pas non plus sûre à 100%. Les serveurs SMTP refusent en général une demande d'une entité extérieure (le script en l'occurrence) à leur domaine pour l'envoi d'un email à une adresse extérieure à son domaine, mais ce n'est pas toujours le cas. (On parle dans ce cas de serveur smtp acceptant le relayage). La meilleure validation reste d'envoyer un email de demande de confirmation.

XIII. Changement du nom du dossier des statistiques

Pour changer le nom du dossier stats/, c'est simple, éditez le fichier functions.stats.php et cherchez la ligne suivante :

define('WA_STATS_PATH'      , $waroot . 'stats/', true); 

Remplacez "stats" par le nom de votre choix.

XIV. Envoi des newsletters avec cron

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 :

  • Vous pouvez très bien changer le nom du fichier cron.php (conseillé)
  • C'est à vous de régler cron pour qu'il réalise l'appel au script (si cron n'est pas disponible sur votre serveur, vous pouvez utiliser par exemple les services gratuits de webcron.org

XV. Utilisation de tags personnalisés

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]['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 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 tags.inc.php (en ayant décommenté les lignes que j'ai donné plus haut), comme ci dessous :

$other_tags[0]['column_name'] = 'abo_address';
$other_tags[0]['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 dasn le dossier 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

XVI. Définir une langue selon le formulaire

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