Comment envoyer une page php interprétée par email ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Comment envoyer une page php interprétée par email ?

par Tong » 16 nov. 2007, 22:45

Je crois que tu m'as convaincu ....

Merci de l'aide ! allez hop, Résolu :)

par Gargan21 » 16 nov. 2007, 14:29

Bonjour,

Oui ca me parait viable comme solution, mais ... je ne l'utiliserai pas personnellement :)
Je précise :
Une newsletter génère quand même pas mal d'envoi, il faut donc que tu récupères toutes tes infos en base, tu boulces sur chaque destinataire, et pour chaque destinataire, tu fais un appel fopen en passant tes paramètres en GET, donc avec une vérif avant ta génération de la newsletter.
Alors qu'en utilisant un fichier template, tu te stockes tout le contenu de ton template dans une variable une fois pour toute et dans ta boucle, tu te contentes de remplacer tes balises persos puis d'envoyer. Avec cette méthode, tu fais 1 seul appel à ton fichier de template.

Après, je t'ai mis un exemple très court, mais dans ton template tu peux très bien envisager une page complète avec une multitude de balise, vu que tout le fichier sera placé dans une variable, tu peux placer autant de balises que tu le souhaite et ou tu veux.

Mais je te répète, ta solution marcherai également.

Bon courage

par Tong » 16 nov. 2007, 00:00

Merci, ça correspond à ce que je veut faire.

Par contre pour ne pas à avoir à utiliser de str_replace, je peut peut-être inclure le php nécessaire dans ma page newsletter.php, puis utiliser fopen avec l'url distante de ma page newsletter.php et en passant par url les infos nécessaires (tel que l'identifiant de l'utilisateur) ?

Du coup, je récupère un code interprété, et je peut personnaliser ma newsletter selon l'utilisateur ( en allant plus loin que l'insertion du nom et du prénom en début de mail )

Ca vous parait viable comme solution ? Pas trop couteux pour l'envoi d'une newsletter à qqes milliers de personnes ?

Parce que ça revient à aller chercher la newsletter sur un serveur distant ? C'est peut-être un peu bête sachant qu'elle est à portée de main.

par Gargan21 » 15 nov. 2007, 23:25

Il sgit la de la méthode de base, après tu peux te faire un fichier html qui contient tout le code html de ta newsletter, les parties dynamiques, tu te définies des balises à la méthode d'un template. Par exemple :

Code : Tout sélectionner

<p>Bonjour {**prenom**} {**nom**}</p> ...
après dans ton code php, tu parcours le fichier, tu le mets dans un variable, et tu effectues des remplacement avec str_replace pour remplacer tes balises par tes infos en bdd.

Il existe bien sûr d'autres méthodes, celle-ci à le mérite d'être assez simple puisque du coup tu codes ta newsletter sans te préoccuper de php.

par Tong » 15 nov. 2007, 20:05

Pas vu de Troll moi. Il est où votre troll ?

Sinon, pour cette partie envoi de mail html, ça marche.

Le seul problème, c'est que c'est super pas pratique pour un mail html assez élaboré de tout mettre dans une variable "à la main".

J'aurais aimé moi pouvoir coder ma newsletter comme une page php classique, puis récupérer le contenu de cette page après l'avoir interprété (donc le contenu tel que le serveur client le verra). Comme ça, c'est bien plus facile à relire, je n'ai pas à me soucier des quotes ect ...

Un include() fait plus ou moins ça non ? il interprète le contenu de la page appelée puis le renvoie ?

Seulement l'instruction $body = include(newsletter.php) ne donne rien ( c'est sans doute pas surprenant)

J'arrive à me faire comprendre ? ou pas .... ? :wink:

par choubix » 15 nov. 2007, 14:34

j'aime bien ce sens de l'humour sur le forum ;)

bon, moi ja'i toujours un soucis de redimensionnement pas regle alors je retourne a mes scripts!

au fait: ca marche l'envoi de ta newsletter? t'as choisi quelle option?

par Berzemus » 15 nov. 2007, 14:21

ouaip, n'y connaissez rien en troll .. Grümpff..

(la, c'est du hors-sujet.. :D )

par Truc » 15 nov. 2007, 14:13

bon, ce sujet part en troll ;)
Pas vraiment en troll :-k
à peine plus en hors sujet puisque ça parle de librairies mail utilisables par Tong.

Une "critique" est un avis rien de plus :wink:

par Gargan21 » 15 nov. 2007, 12:58

une bonne critique c'est un compliment non??? ;)
Tout à fait
il faudrait que je vois a quoi a ressemble Zend framework... c'est un environnement facon Ruby??
Je te renvoi vers http://www.z-f.fr pour celà, on s'écarte du sujet là ;)


Hop, fin du troll :)

par choubix » 15 nov. 2007, 12:40

bon, ce sujet part en troll ;)

une bonne critique c'est un compliment non??? ;)
il faudrait que je vois a quoi a ressemble Zend framework...

c'est un environnement facon Ruby?? (bon apres j'arrte le troll : promis)

par Gargan21 » 15 nov. 2007, 12:38

houla il y a eu de la mise a jour de phpmailer recemment!
la derniere mouture datait pas de 2005??
Si si en effet, je ne sais pas ce que vaut cette version 2, car étant en release, je reste sur la 1.73. Je ne sais si j'aurais un jour l'occasion de l'utiliser ceci dit, car je suis en train de migrer vers Zend_Mail. En fait, je migre tout vers Zend_Framework :)
perso: j'utilise Swift Mailer http://www.swiftmailer.org et ca marche super bien :)
Je ne l'ai jamais utilisé, mais j'en ai effectivement toujours entendu de bonnes critiques

par choubix » 15 nov. 2007, 12:20

houla il y a eu de la mise a jour de phpmailer recemment!
la derniere mouture datait pas de 2005??

perso: j'utilise Swift Mailer http://www.swiftmailer.org et ca marche super bien :)

par Gargan21 » 15 nov. 2007, 11:06

Bonjour,

au lieu de faire ca :

Code : Tout sélectionner

<html> ... <?php echo $var; ?> </html>
ou encore

Code : Tout sélectionner

echo "<html>"; ... echo $var; echo "</html>";
Il faut que tu fasses :
<?php
$message = "<html>";
$message .= "...";
$message .= $var;
$message .= "</html>";
?>
Ainsi tu pourras envoyer ta variable $message par ton système d'envoi de mail

PS : Je te conseille PHPMailer pour envoyer des mails facilement. Tu le trouveras ici :http://phpmailer.sourceforge.net/ et ici : http://stephaneey.developpez.com/tutori ... phpmailer/ tu as un très bon tutoriel en français

par iclo » 15 nov. 2007, 10:25

Salut,

Le corps du mail n'est jamais qu'une chaine de caratère, sous forme d'une variable.
Si tu concatênes le contenu de ce corps de mail dans une variable et que tu la passes à la fonction mail, ça devrait tout à fait faire.

par choubix » 15 nov. 2007, 06:57

tu peux creuser du cote de la fonction mail()

maintenant, de ce que j'ai compris elle peut vite etre gourmande en ressources et pas toujours facile a utiliser.

elle te permettrait d'envoyer tes emails par contre.

sinon dans le registre: c'est deja fait, ca marche bien et c'est pratique:

swift mailer: une librairie qui te permet de gerer tous tes envois de mails via ton serveur en SMTP.
plein de petites fonctionnalites utiles dedans (personnalisation des emails, tu peux stopper ton envoi d'emails et le reprendre apres un temps que tu definis etcetc)

et dans le registre "tout est deja fait": phplist

la tu auras plus du tout a te prendre la tete ;)