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

Eléphant du PHP | 91 Messages

15 nov. 2007, 01:55

Hello,

Je mets en place actuellement une newsletter.

Je la crée donc comme n'importe quel page php, et je cherche maintenant à envoyer cette page par email.

Mon but est donc de stocker le contenu interprété de ma page newsletter.php dans une variable , et d'envoyer un mail dont le corps sera cette variable.

Et donc, c'est l'etape "stocker le contenu interprété de ma page newsletter.php" qui me pose problème ...

Merci de l'aide :wink:

Eléphant du PHP | 319 Messages

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 ;)
niveau: pas terrible en php mais je me soigne...

ViPHP
ViPHP | 2144 Messages

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.

Eléphanteau du PHP | 26 Messages

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

Eléphant du PHP | 319 Messages

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 :)
niveau: pas terrible en php mais je me soigne...

Eléphanteau du PHP | 26 Messages

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

Eléphant du PHP | 319 Messages

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)
niveau: pas terrible en php mais je me soigne...

Eléphanteau du PHP | 26 Messages

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

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

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:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

ViPHP
ViPHP | 4039 Messages

15 nov. 2007, 14:21

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

(la, c'est du hors-sujet.. :D )
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 319 Messages

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?
niveau: pas terrible en php mais je me soigne...

Eléphant du PHP | 91 Messages

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:

Eléphanteau du PHP | 26 Messages

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.

Eléphant du PHP | 91 Messages

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.

Eléphanteau du PHP | 26 Messages

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