PHP-Astux.info

DarkVador à Tux Skywalker : "Je suis ton PEAR ..."

Dernière màj : 01-01-2011

NewsletTux 2 : Foire Aux Questions / Réponses (F.A.Q.)

[En] Read this page in english

Sommaire

  1. Puis-je consulter la doc de NewsletTux ?
  2. Quelle est la première étape pour installer NewsletTux ?
  3. Connection file missing / Fichier de connexion manquant
  4. NewsletTux not already installed / NewsletTux n'est pas installé
  5. Go to Config > manage subscriptions / Rendez-vous dans Configuration > Configuration des inscriptions ...
  6. Le webmaster du site n'a pas encore créé de newsletter
  7. form-newslettux.php : define "NTUX2_ROOT" ?
  8. Que sont les templates ?
  9. Pièces jointes
  10. Importer les données de NewsletTux 1.X ?
  11. Comment utiliser le système de Flux RSS ?
  12. Warning: session_start() [function.session-start]: open(/mnt/ ...
  13. Profil utilisateur : à quoi servent le nom, le mot de passe ...?
  14. Personnalisation CSS du mail
  15. J'ai perdu mon mot de passe ... !
  16. Aucun mail n'est reçu ...
  17. J'ai le message error file_get_contents : http://...
  18. Comment ajouter d'autres langues ?
  19. Pourquoi ces modifications dans la mise à jour 2.0.9. => 2.1.0. ?
  20. Personnalisation du contenu de la newsletter avec le Mod
  21. Régler la durée d'envoi des mails
  22. Comment modifier un texte (lien ...) et le conserver même avec les mises à jour ?
  23. Comment scinder une liste d'inscrits à un profil en X profils ?
  24. Mettre en pause / Relancer les envois
  25. Réglages NewsletTux 2 sur Free.fr
  26. Error file_get_contents lors d'un envoi de newsletter depuis un site sécurisé (HTTPS)
Haut Puis-je consulter la doc de NewsletTux ?

Bien sûr. Lien vers la documentation NewsletTux - Documentation NewsletTux en PDF (merci Djamel)

Haut Quelle est la première étape pour installer NewsletTux ?
Il suffit de lire la documentation fournie dans l'archive sous forme de fichier "install-francais.txt" qui indique la marche à suivre pour l'installation du script. (Ou cf. question précédente)
Haut Connection file missing / Fichier de connexion manquant
Cette erreur est due au fichier conn.php manquant dans le dossier SQL. Soit vous n'avez pas suivi la procédure d'installation, soit vous avez effacé ce fichier. Voici ci-dessous la syntaxe du fichier à copier/coller dans un fichier texte que vous enregistrerez sous conn.php dans sql/. Renseignez le préfixe des tables NewsletTux 2 (par défaut ntux2_) ainsi que les paramètres SQL comme indiqué. ATTENTION : depuis la version 211 de NewsletTux 2, le fichier conn.php doit être rempli comme suit :
<?php
	$mysql_host = 'votre_serveur_mysql_ici';
	$mysql_db   = 'votre_nom_de_base_mysql_ici';
	$mysql_usr  = 'votre_utilisateur_mysql_ici';
	$mysql_pwd  = 'votre_mot_de_passe_mysql_ici';
	if (!defined('DB_PREFIX'))
		define('DB_PREFIX','votre_prefixe_newslettux2_ici');
?>
Haut NewsletTux not already installed / NewsletTux n'est pas installé
Effacez le fichier install.php du dossier admin/ après vous être assuré que l'installation ait été correctement effectuée ...
Haut Go to Config > manage subscriptions / Rendez-vous dans Configuration > Configuration des inscriptions ...
L'adresse de la page du formulaire de NewsletTux 2 n'a pas été remplie. Si vous créez une page "ma_newsletter.php" dans newslettux2/ (= le dossier d'installation du script que vous avez choisi) alors vous devez indiquer dans le champ de cette page d'administration : http://votre_site.ext/newslettux2/ma_newsletter.php
Haut Le webmaster du site n'a pas encore créé de newsletter
Allez dans "Lettres d'information" > "Lister les profils" et créez-en un qui doit être ouvert aux inscriptions.
Haut form-newslettux.php : define "NTUX2_ROOT" ?
Cette configuration n'est pas forcément simple, mais je vais tenter de l'expliquer en quelques mots simples. Form-newslettux.php est une page destinée à être englobée dans une autre. Par exemple, dans "ma_newsletter.php". Cette manipulation est écrite dans la doc.

Définir cette variable NTUX2_ROOT, c'est donner le chemin relatif vers le dossier de newslettux depuis "ma_newsletter.php".

Si "ma_newsletter.php" est *dans* newslettux2/ alors le chemin relatif est le même dossier, puisqu'on y est déjà. Cela se note "point slash" : ./
Si "ma_newsletter.php" est dans le dossier qui contient, entres autres, newslettux2/ (c.à.d. dans le dossier parent) alors NTUX2_ROOT vaut "newslettux2/". En cas de souci avec cete variable, lisez le cours sur les chemins relatifs de ce site ou venez poser vore question sur le forum en présentant votre arborescence.
Haut Que sont les templates ?
Les templates ce sont des fichiers HTML (d'extension .htm) qui permettent de donner une apparence personnalisée à vos newsletters. Concrètement, vous préparez une page HTML sur votre éditeur Web favori, vous l'enregistrez en .htm et c'est presque prêt.

Il y a quelques petites choses tout de même à penser :
  • Si vous désirez inclure des images, telles que la bannière de votre site p.ex., vous devez les mettre en URL absolue (c.à.d. <img src="http://www.votre_site.ext/image/banniere.jpg"> par exemple) : cela allège le poids du mail (puisque l'image est stockée sur votre site).
  • A l'endroit où vous voulez voir apparaitre le texte de la newsletter, vous devez mettre un marqueur spécifique : --NEWSLETTUX-- seul sur une ligne. Ce marqueur sera remplacé par le texte de votre newsletter.
  • Depuis la version 2.1.0., vous pouvez mettre un marqueur, seul sur une ligne : --FOOTER-- qui sera remplacé par les liens de gestion des abonnements, etc.
  • les templates ne seront pas visibles pour les abonnés en format texte
  • Le template désactive toutes les autres options (police par défaut, etc.) du mail HTML : pour les utiliser malgré tout, mettez-les dans le template (en tant que styles CSS par exemple).
  • Par expérience, les mails au format HTML sont mieux interprétés sur les clients messagerie en Doctype HTML et non XHTML : écrivez donc vos pages en HTML "simple".
Haut Pièces jointes
Les pièces jointes sont des fichiers que vous envoyez en même temps que le mail, quel que soit le format de l'abonné (Texte ou HTML). Ces pièces jointes peuvent être un Zip, un texte, une image ou un contenu multimedia autre.

Attention au poids du fichier : lorsqu'on met une pièce jointe dans un mail, son poids gonfle automatiquement d'environ 1/3. Par exemple, une pièce jointe de 1 Mo dans un mail pèsera, au final, 1.3 Mo dans la messagerie de l'abonné (pour des raisons d'encodage de mail). Sur votre interface NewsletTux, vous pouvez spécifier manuellement le nombre et le poids max des pièces jointes.

Pensez également aux abonnés en bas débit, qui mettront un peu plus de 5 min à recevoir 1 Mo ... La limite maxi d'un mail via NewsletTux ne peut excéder 2 Mo (limite des serveurs Apache en général).
Haut Importer les données de NewsletTux 1.X ?
C'est possible. Un patch est disponible dans la section téléchargements. Il importe en copie les informations sur les écrivains, les permissions, les abonnés, les profils, les newsletters envoyées, etc. dans les tables de NewsletTux 2. Par mesure de sécurité, il n'efface rien de NewsletTux 1.X : vous devrez manuellement effacer les tables et les fichiers une fois que vous serez sûr que votre NewsletTux 2 aura bien reçu toutes les données.

Ce patch ne s'applique pas à toutes les versions de NewsletTux 1.X, lisez le fichier texte joint pour l'explication de cet import. Vous ne devez exécuter ce patch que sur une installation vierge de NewsletTux 2 !
Haut Comment utiliser le système de Flux RSS ?
Pour afficher des flux RSS sur un site, vous devez donner un lien comme suit :
<?php

	// Afficher les 10 dernières lettres d'informations du profil d'identifiant 1 :
	include('http://www.votre_site.ext/newslettux2/newslettux_rss.php?feed=RSS&pid=1');

	// Afficher les 10 dernières lettres d'informations des profils d'identifiants 1, 4, 5 :
	include('http://www.votre_site.ext/newslettux2/newslettux_rss.php?feed=RSS&pid=1,4,5');

	// Afficher les 25 dernières newsletters des profiles d'identifiants 1, 3, 5 :
	include('http://www.votre_site.ext/newslettux2/newslettux_rss.php?feed=RSS&show=25&show=25&pid=1,4,5');

	// Pour exporter un flux au format Atom 1.0 (au lieu de RSS 2.0), remplacez "feed=RSS" par "feed=ATOM"
?>
  • http://www.votre_site.ext/newslettux2/ représente l'adresse de votre site, ainsi que le nom du dossier d'installation de NewsletTux 2.
  • feed=RSS signifie que vous expotez un flux RSS. (autres options : feed=ATOM (Atom 1.0) ou feed=HTML, du contenu HTML simple)
  • pid=X,Y,Z : X Y et Z représentent les identifiants des profils de newsletters. Vous pouvez envoyer le contenu de plusieurs newsletters en même temps, ou bien celui d'une simple newsletter. Par défaut, la toute première newsletter créée porte l'identifiant 1. Attention, pour que les RSS soient affichés, le profil de lettre d'information spécifié (X, Y et Z) doit avoir la case "Accès publique" cochée.

Le nombre "10" est déterminé dans newslettux_rss.php. Il extraiera les 10 dernières newsletters. Vous pouvez le changer manuellement en modifiant newslettux_rss.php ligne 42 : { $num_newsletters = 10; }. Il peut être surchargé par le paramètre show dans l'URL.

Haut Warning: session_start() [function.session-start]: open(/mnt/ ...
Si vous êtes sur un serveur Free, créez un dossier nommé "sessions" à la racine du FTP.
Haut Profil utilisateur : à quoi servent le nom, le mot de passe ...?
Dans la gestion des utilisateurs, il y a plusieurs infos qui peuvent ne pas toutes servir (en fait, peu serviront). Il y a :
  • Le grade, qui est abonné (aucun accès à l'interface), écrivain (juste accès à l'écriture d'une newsletter), admin (gestion de presque toute l'interface) et super utilisateur (root), celui qui a installé le script et qui est plénipotentiaire.
  • Le nom qui est utilisé seulement lors de l'envoi d'une newsletter en tant qu'expéditeur : c'est pourquoi, par défaut, les abonnés n'ont pas de nom (puisqu'ils n'ont pas accès à l'interface, ils n'enverront pas de newsletter). Lorsque vous passez un abonné en tant qu'écrivain, pensez à lui mettre un nom ;o)
  • L'email, qui est l'email de l'utilisateur qui recevra les newsletters selon ses abonnements. Par défaut, le super utilisateur est inscrit à toutes les newsletters.
  • La signature, zone de texte simple permettant de mettre quelques lignes de signature en bas d'une newsletter (numéro de téléphone, site web, slogan ...). Cette signature est propre à chaque utilisateur, les admins peuvent toutefois éditer tous les abonnés, donc a fortiori, les signatures aussi.
  • Le mot de passe, zone nulle part visible mais qui existe bien. Le mot de passe est haché en md5 dans la base de données, il sert à la gestion des abonnements et, pour les utilisateurs non abonnés (écrivains etc.) à se connecter à l'interface d'administration (avec, pour identifiant, leur email).
Haut Personnalisation CSS du mail
Il est tout à fait possible de personnaliser les liens en bas du mail (format HTML uniquement) : la classe "ntux2_userfooter" est appliquée sur la signature de l'utilisateur et la classe "ntux2_links est appliquée sur le lien de gestion des abonnements, de visualisation de la newsletter "online" ainsi que le lien de publicité.
Haut J'ai perdu mon mot de passe ... !
Voilà une question bien ennuyeuse ... Heureusement il y a de quoi en recréer un. Les mots de passe dans la base sont hashés c.à.d. que d'une suite de caractères ( le mot de passe initial), et par une série d'opérations, on trouve une autre suite de caractères (le hash). Ce n'est pas un cryptage : si le mot de passe d'origine est très complexe, il y a une chance quasi nulle de pouvoir le retrouver (ou alors ça prendrait quelques décennies avec un stock des plus puissants ordinateurs du monde ...)

J'ai mis en ligne un outil pour vous permettre de recréer un hash de mot de passe, voyez cette adresse : les Outils NewsletTux.
Ce patch ira mettre à jour directement votre mot de passe.
Haut Aucun mail n'est reçu ...
Vous venez de tester le script sur votre hébergeur, tout a l'air de bien se passer, mais aucun mail n'est reçu ... Afin de mieux vous aider, voici les principaux tests à réaliser :
  • Y a-t-il au moins un email abonné au profil de newsletter choisi ?
  • L'hébergeur a-t-il mis en place une restriction sur l'envoi des emails ? (syntaxe de la fonction, ou quota d'envoi comme Free.fr) ?
  • Combien de temps s'est écoulé entre le signalement de fin d'envoi de la newsletter dans le script et la vérification de la boite aux lettres ? Souvent un temps très court est nécessaire (au plus 1 minute) mais parfois cela peut mettre beaucoup plus (10 minutes) ...
  • Quels formats ont été testés : Texte ? HTML sans template ? HTML avec template ? Essayez de faire un essai au format Texte, c'est le plus simple traitement, pour voir si le problème d'envoi est une question de format ou de serveur.
  • Quelle est la méthode d'envoi des mails : mail( de PHP ou un serveur SMTP ?
  • Avez-vous un client messagerie particulier (p.ex. un Webmail : Squirrelmail, Horde ...) ?
  • Avez-vous vérifié votre boîte de courrier indésirable ?
  • Votre hébergeur est-il "NewsletTux capable" ? (cf. liste non exhaustive des hébergeurs compatibles NewsletTux)
Si aucun de ces tests ne résout le problème, ouvrez un sujet sur le forum en précisant votre hébergeur.
Haut J'ai le message error file_get_contents : http://...
Ce message indique que NewsletTux a tenté de lire un fichier dont l'adresse (URL) est précisée dans le message d'erreur, mais qu'il n'a pas réussi. 2 solutions sont possibles :
  • ETAPE 1 : l'adresse n'est pas correcte. Test très simple : copiez/collez-la dans votre navigateur, si la page existe alors l'adresse est bonne (passez à l'étape 2)
  • ETAPE 2 : Votre hébergeur n'autorise pas cette fonction, ou n'autorise pas l'ouverture de fichiers distants. Contactez-le pour plus de précisions. Vous pouvez alors utiliser la méthode "traditionnelle" pour ouvrir les templates (ce qui vous empêchera d'avoir des templates en PHP dynamiques) en ouvrant la configuration générale du script puis en cochant Fonction file_get_content > Désactivée.
Haut Comment ajouter d'autres langues ?
Il n'y a pas besoin de beaucoup d'interventions de l'utilisateur. 4 fichiers sont à traduire :
  • admin_fr.lang.php
  • client_fr.lang.php
  • common_fr.lang.php
  • install_fr.lang.php

ATTENTION : il y a un fichier au format ANSI (ISO-8859-15) et un fichier au format UTF-8 pour chacun. Renommez vos nouveaux fichiers en utilisant les 2 lettres indicatives de la langue : en, sp, de, ... par exemple, admin_de.lang.php, admin_de-UTF-8.lang.php.

Ajoutez ces fichiers dans le dossier languages/ sur votre serveur, puis vous verrez apparaitre la langue dans la configuration !

L'idéal, pour terminer, est d'ajouter un petit drapeau dans le dossier img/ nommé comme suit : newslettux-{langue}.png de 24 pixels sur 16. (p.ex. newslettux-de.png)

Depuis la version 2.1.0., vous pouvez jeter un oeil aux modules complémentaires, pour voir si le pack de langue n'est pas proposé à l'installation : par ce moyen, il est installé automatiquement...

enfin, si la langue n'existe pas dans les traductions de NewsletTux, vous pouvez la proposer à la communauté NewsletTux : contactez-moi pour plus d'information.

Haut Pourquoi ces modifications dans la mise à jour 2.0.9. => 2.1.0. ?

Afin d'ajouter des modules automatiques, certaines parties de code ont été entièrement réécrites. La connexion à la base de données a été également optimisée, d'où le besoin d'éditer "sql/conn.php".

Ce petit travail permet d'avoir plus de souplesse dans les futures mises à jour, ainsi que dans l'installation des modules automatiques.

Votre fichier "conn.php" doit ressembler à celui du bas de la question #q02, vous devez mettre à jour admin/tools.php et lib/functions.php en écrasant les vôtres par ceux de la version 2.1.0. (fournis dans cette archive)
Il se peut qu'il manque des messages de confirmation à la fin de la mise à jour, ce n'est pas un bug : dès que la page aura été rechargée, les erreurs n'apparaitront plus.

Haut Personnalisation du contenu de la newsletter avec le Mod

Le module CostomizeNewsletter vous permet d'utiliser des marqueurs spéciaux dans le corps de vos newsletters. Ces marqueurs sont remplacés par des informations tirées de la table des abonnés. Les informations que vous pouvez mettre dans votre newsletter sont :

  • --ntux2_id-- qui affichera l'identifiant de l'abonné,
  • --ntux2_groupval-- affichera le groupe de l'abonné (administrateur, écrivain, abonné ou super utilisateur),
  • --ntux2_pwd-- affichera le mot de passe de l'abonné (crypté),
  • --ntux2_name-- affichera le nom de l'abonné,
  • --ntux2_mail-- affichera l'adresse email de l'abonné,
  • --ntux2_firstletter-- affichera la première lettre de l'email de l'abonné (pas très utile, sauf pour les trier par lettre),
  • --ntux2_footer-- affichera la signature de l'abonné, utile seulement en cas d'écrivain, admin ou super utilisateur, autrement est et restera vide,
  • --ntux2_activation-- affichera le code d'activation de l'abonné, vide si le comte est déjà activé.
  • --ntux2_own_lang-- affichera la langue personnelle de l'abonné (langue par défaut ou langue modifiée, utile seulement si elle est renseignée... Donc en cas d'utilisateur écrivain, admin ou super utilisateur)

N'oubliez pas que chaque abonné recevra ses propres informations, si le nom n'est pas enregistré pour un abonné, le marqueur --ntux2_name-- ne renverra rien pour lui (mais pour d'autres, il renverra leurs noms si enregistrés).

Haut Régler la durée d'envoi des mails

Certains hébergeurs imposent un quota de mails max par heure. Il est possible d'intervenir sur la quantité d'emails envoyés par NewsletTux en spécifiant quelques réglages ...

Tout d'abord, ouvrez Configuration > Méthode d'envoi des mails. Réglez le "Nombre d'emails par passe" à 1. Ceci fait, la page admin/send_newsletter.php n'enverra les emails que 1 par 1.

Ensuite, ouvrez Configuration > Configuration Générale et choisissez le stockage de session en base de données.

Enfin, ouvrez admin/send_newsletter.php, repérez la ligne RedirectTo($uri, 4000, true); et changez la valeur 4000 (en millisecondes) par ce que vous voulez. Par exemple, pour envoyer un email toutes les 10 secondes, mettez 10000.

Haut Comment modifier un texte (lien ...) et le conserver même avec les mises à jour ?

L'astuce est simple, il suffit de repérer dans les fichiers du dossier languages/ quel texte vous souhaitez modifier. Par exemple, $ntux2['oui']. Ouvrez le fichier languages/mods-fr.php (et l'équivalent UTF-8) et ajoutez une ligne (entre <?php et ?>) avec $ntux2['oui'] = "Votre nouveau texte ici";

Explication : lors d'une mise à jour du script, il se peut que les fichiers de langue soient mis à jour, ce qui vous fera perdre toute votre personnalisation. Le fichier "mods" (poour les modules complémentaires) ne nécessite pas d'être mis à jour.

Attention à bien mettre les guillemets doubles ainsi que le point virgule.

Haut Comment scinder une liste d'inscrits à un profil en X profils ?

Supposons un profil initial, ID 1. Il y a également 1 million d'utilisateurs dessus, les utilisateurs vont de l'ID_user 1 (c'est le super utilisateur, celui qui a installé NewsletTux) à 1 million (pour faciliter l'explication).

Dans la table ntux2_subscriptions, on a donc 1 millions de lignes avec ID_USER, 1 (ID_profil) et html ou text comme reg_format selon le format choisi à l'inscription.

  • Etape 1 : créer un nouveau profil. ID 2. (ou plus, si besoin, par exemple, nous allons scinder le million d'utilisateurs en 4 profils de 250 mille chacun, donc création de nouveaux profils d'ID 2, 3 et 4.)
  • Etape 2 : ouvrir PHPMyAdmin, choisir la bonne base (si ce n'est pas fait automatiquement) et cliquer dans le volet de droite sur l'onglet "SQL". En supposant que le préfixe des tables soit "ntux2_", coller cette requête :
  -- On met dans le profil 2 les utilisateurs dont l'ID est compris entre 250 000 et 500 000
  UPDATE ntux2_subscriptions SET id_profile='2' WHERE (id_user >= '250000' AND id_user < '500000');

Exécuter cette requête. Puis recommencer pour le profil 3 avec (id_user >= '500000' AND id_user < '750000') par exemple.

Cette méthode permet de transvaser simplement les abonnés, sans perte de leur format d'inscription.

Haut Mettre en pause / Relancer les envois

Depuis la v. 2.1.4., vous avez la possibilité d'interrompre l'envoi d'une lettre d'information pour le reprendre ultérieurement.

Pour mettre en pause : utilisez le lien lors de l'envoi de la lettre d'information fourni en dessous de la liste des emails venant d'être traités. Notez, dans l'URL, la valeur de lim= : c'est le nombre limite auquel vous avez arrêté l'envoi. (Ce nombre vous est rappelé dans un encadré à la fin de l'envoi)

Pour relancer un envoi : utilisez le lien "repartir de cette newsletter" présent dans l'historique d'envoi, et dans le champ tout en bas de la page d'écriture, "commencer à partir de ...", renseignez la limite depuis laquelle vous souhaitez repartir.

Haut Réglages NewsletTux 2 sur Free.fr

Free.fr est assez particulier, et a la facheuse manie de ne communiquer aucune information. Je regrouperai dans cette question tous les réglages qu'il faut faire.

Premièrement, il faut créer un dossier "sessions" à la racine du FTP.

La fonction file_get_contents (templates dynamiques) semble marcher aléatoirement selon les serveurs.

Il n'est pas possible d'envoyer plus de 100 mails par jour (24H consécutives) - c'est un quota total sur votre hébergement, donc NewsletTux + vos autres scripts (cf. explication de l'assistance Free). Vous devez donc stopper manuellement l'envoi avant 100, puis repartir de cette newsletter envoyée depuis l'historique d'envoi 24H après pour reprendre à la position 100, et arrêter de nouveau à 100 mails envoyés, et ainsi de suite... (ceci bien sûr si vous n'avez aucun autre script qui envoie des mails) - la pause/relance est intégrée à la version 2.1.4. de NewsletTux.

Haut Error file_get_contents lors d'un envoi de newsletter depuis un site sécurisé (HTTPS)

Dans le cas où NewsletTux est hébergé sur un HTTPS avec restriction sur l'IP comme suit :

<Directory /var/www/newsletux>:
    Options -Indexes FollowSymLinks
    AllowOverride None
    order allow,deny
    allow from XXX.YYY.ZZZ.TTT
</Directory>

où XXX.YYY.ZZZ.TTT est l'IP du serveur, on peut rencontrer une erreur à la lecture d'un fichier template p.ex.

L'erreur dans le fichier "log" Apache doit ressembler à : client denied by server configuration.

Solution : rajouter l'adresse IP du serveur sur la restriction :

<Directory /var/www/newsletux>:
    Options -Indexes FollowSymLinks
    AllowOverride None
    order allow,deny
    allow from XXX.YYY.ZZZ.TTT AAA.BBB.CCC.DDD
</Directory>

Plus de détails : voir le sujet relatif sur le forum

Certaines solutions peuvent valoir pour plusieurs problèmes. Si vous ne parvenez pas à trouver, mettez un mot dans le forum en copiant tout le message d'erreur.