• Bonjour Visiteur. Bienvenue sur les nouveaux forums de MacGeneration. La peinture est encore fraiche, quelques boulons doivent être resserrés, plus d’informations demain !

Créer une newsletter à partir d'un RSS

GrandGibus

Membre d’élite
Club MacG
8 Mars 2004
1 262
103
46
Bordeaux
homepage.mac.com
Le principe est relativement simple:
  1. lire les informations de l'aggrégateur RSS (simple fichier xml)
  2. projeter le résultat dans une template
  3. Envoyer la news letter

Concrètement, je l'ai fait en Java (à partir d'un RSS que j'avais moi-même généré) pour une petite appli type portail.

La news letter était produite au format HTML par un script Velocity... Mais on peut en faire dans n'importe quel autre format ;).

L'envoi était confié à JavaMail.

Si ce type de solution t'(vous) interesse, on peut aller un peu plus loin dans les détails.



gg
 

bengilli

Membre d’élite
Club MacG
17 Avril 2000
2 645
315
40
Paris
hello grandgibus, l'idée (je pense) de alan.a comme moi serait que ça soit automatisé et simple, inscription à la newsletter dans une table et envoi hebdomadaire ou journalier d'un mail reprenant un fil RSS deja généré par dotclear (http://www.dotclear.net).
 

GrandGibus

Membre d’élite
Club MacG
8 Mars 2004
1 262
103
46
Bordeaux
homepage.mac.com
J'ai pigé (cerveau à 2 à l'heure) !

J'ai installé dotclear (facile, j'avais déjà tous les pré-requis en local :D), l'idée va être de faire un petit script php qui enverra lui-même les mails (fonction mail) en ayant pris soin de faire 2 select en base (un pour la liste des abonnés, l'autre pour la liste des sujets récents (même pas besoin d'utiliser l'aggrégateur ;)). Le schéma de base n'est pas compliqué.

Du coup, ça me force un peu à jeter un coup d'oeuil du coté de php (chose que je devais faire depuis un moment déjà)... et comme je branle en réunion toute la journée en ce moment (tiens, un client oueb en velocity)... et que j'ai pas sommeil.... tous les espoirs sont permis.
 
  • J’aime
Réactions: alan.a

GrandGibus

Membre d’élite
Club MacG
8 Mars 2004
1 262
103
46
Bordeaux
homepage.mac.com
Depuis le temps que je me disais qu'il fallait que je jette un oeuil à php... Maintenant c'est fait ;).

Voici un premier jet... Comme c'est un premier jet, je suis certain que les puristes du php auront un tas de remarques (bienvenues) à formuler. Pour ma part, j'y vois déjà une quantité d'améliorations à y apporter... Le but étant de montrer le principe !

Par contre, il conviendra de renommer l'extension du fichier ainsi que de positionner les diverses variables dans le script (au début).

Je n'ai malheureusement pas pu tester l'envoi de mail à partir de mon portable (et de mon FAI) :( mais je ne vois pas pourquoi ça poserait problème.


Tenez-moi au courant si ça a pu vous avancer un peu, merci.
 
  • J’aime
Réactions: bengilli

GrandGibus

Membre d’élite
Club MacG
8 Mars 2004
1 262
103
46
Bordeaux
homepage.mac.com
Ah, j'oubliais:

il conviendrait éventuellement de mettre le script en zone privée évitant certaines fausses manips.

De plus, l'automatisation du déclenchement peut se faire par un webcron (ou cron + curl ou bien d'autres encore)
 

bengilli

Membre d’élite
Club MacG
17 Avril 2000
2 645
315
40
Paris
merci grandgibus, je regarde tout ça dès que je rentre d'une semaine de tournée, et je te tiens au jus :D
 

bengilli

Membre d’élite
Club MacG
17 Avril 2000
2 645
315
40
Paris
Alors...

J'ai testé ça peut etre un peu rapidement, en tout cas ca fonctionne très bien chez moi. J'ai modifié quelque peu le formatage du message envoyé (défauts constatés, pas de retour à la ligne entre les titres des billets et problème avec les mails aux format HTML, j'ai préféré rester en texte simple).

Le seul problème est que ça appelle les adresses email des utilisateurs du blog, alors que la mailing list était - dans mon idée - plutot destinée aux lecteurs. L'idéal serait de pouvoir saisir dans un formulaire les adresses des utilisateurs inscrits.

A part cela, ça remplit très bien son office ;)
 

GrandGibus

Membre d’élite
Club MacG
8 Mars 2004
1 262
103
46
Bordeaux
homepage.mac.com
Oh pinaise.... du php avancé:
  • un formulaire de saisie pour récolter les adresses des lecteurs
  • une insertion en base pour constituer la liste des abonnés

Restera alors à taper dans la bonne table (celle justement constituée ;)) dans le script d'envoi.


T'en veeeeuuuuxxx ?



:D
 

bengilli

Membre d’élite
Club MacG
17 Avril 2000
2 645
315
40
Paris
avec plaisir, histoire de boucler la boucle :p

d'ailleurs au vu des requêtes sur les forums de Dotclear, ton plug-in pourrait rencontrer un succès certain, ou un certain succès ;)

Coté CNIL, ca va, c'est pour un site de famille :p
 
  • J’aime
Réactions: GrandGibus

GrandGibus

Membre d’élite
Club MacG
8 Mars 2004
1 262
103
46
Bordeaux
homepage.mac.com
En y réflechissant à deux fois, et suivant les conseils éclairés d'un geek (eddyrun si tu nous lis...)... la fonctionalité n'est pas si simple que ça.

Pour bien faire, il faut:
  1. insérer un lien dans le blog genre inscrivez-vous à la newsletter
  2. la validation du formulaire a pour effet de rajouter un utilisateur en base (avec un status temporaire)
  3. Envoyer un mail au nouvel inscrit avec une URL encodée pour la validation (et l'activation)
  4. préparer aussi de quoi désinscrire un abonné

mais y'a pas non plus de quoi casser 3 pattes à un canard... ça va donner de quoi combler les heures creuses :D
 

GrandGibus

Membre d’élite
Club MacG
8 Mars 2004
1 262
103
46
Bordeaux
homepage.mac.com
J'en ai rêvé... EddyRun vous l'a fait ;)

Voici les scripts qui font tout ce qui est décrit dans le message ci-dessus.

Attention, faut executer le petit script sql pour créer la table supplémentaire ;).

J'y ai adapté le précédent script (mail.php)...
 
  • J’aime
Réactions: bengilli

bengilli

Membre d’élite
Club MacG
17 Avril 2000
2 645
315
40
Paris
Hello,

Je viens d'installer tes scripts en les adaptant mais semble t'il il manque le fichier database.inc.php

Le serveur me retourne l'erreur suivante :

Bloc de code:
Warning: main(database.inc.php): failed to open stream: No such file or directory in /var/www/free.fr/7/9/famille.andry/newsletter/do_subscribe.php on line 12

Fatal error: main(): Failed opening required 'database.inc.php' (include_path='/var/www/free.fr/7/9/famille.andry/include:.') in /var/www/free.fr/7/9/famille.andry/newsletter/do_subscribe.php on line 12
Je précise que la table newsletter a éété correctement générée par la commande SQL
 

bengilli

Membre d’élite
Club MacG
17 Avril 2000
2 645
315
40
Paris
en créant un include nommé database.inc.php à la main ça fonctionne.

Note si tu souhaites poursuivre, le fichier d'envoi de la newsletter mail.php n'utilise pas les même noms de variables pour la connection à la base et ne fait pas appel à l'include database.inc.php.

Je poursuis mes tests
 

GrandGibus

Membre d’élite
Club MacG
8 Mars 2004
1 262
103
46
Bordeaux
homepage.mac.com
Nickel :up:

Note que les scripts n'ont rien à voir avec un vrai plug-in qui pourrait être proposé à DotClear... c'est de la pure bidouille :D.

Disons, qu'il faudrait les nettoyer et faire une intégration beaucoup plus poussée pour que ce soit proposé ! (Cependant, ils peuvent s'en inspirer grandement ;))... y'a pas de copyright :D
 
  • J’aime
Réactions: bengilli