Envoi de mail : comment faire appel à une page php dans le message à envoyer

Résolu
arnold002 Messages postés 121 Date d'inscription mercredi 27 octobre 2004 Statut Membre Dernière intervention 5 mars 2007 - 26 oct. 2005 à 19:38
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 - 26 oct. 2005 à 20:14
Bonjour à tous,

J'utilise un script qui me permet d'envoyer des emails en masse (newsletter) à des membres.
Dans le corps du message, j'utilise du html, du php, créé des requêtes etc...
Tout ceci fonctionne très bien, mais le code devient vite illisible.
Ex actuel :


$req5
= mysql_query
( "SELECT * FROM offres ORDER BY date DESC LIMIT 1"
);


$result5
= mysql_fetch_array
($req5
);
$msg
.= "\"
;
$msg
. = \"----
\"

;
$msg
.= \"Offre d'emploi du "
.$result5
['date'
]." : "
.$result5
['entreprise'
]." ("
.$result5
['ref'
].")
, \" ;
$msg
. = \"\"
;
$msg
.= \"----
\"
;
$msg
. = \""
;
$msg
.= "
"
.nl2br
($result5
['description'
])."

";
$msg
.= ", \"

;
$msg
. = \"\"
;
$msg
. = \"----
\"

;
$msg
. = \""
;
$msg
.= "Contact : "
.$result5
['contact'
]."
";
$msg
.= ", \"
;
$msg
. = \"\"
;
$msg
.= "

"
;


$to = "toutes mes adresses email";
$subject
= $_POST
[ 'sujet'
];
$dest

= "toto@toto.com"
;

$from
= "From: $dest \r\n"
;
$from
. ="Content-Type: text/html; charset= "iso-8859-1"\r\n"
;
$from
. = "Bcc: $Bcc\r\n"
;

mail
($to
[0],$subject
,$msg
,$from
);

Je voudrai savoir s'il est possible d'inclure une page créée en php, dans le corps du message à envoyer. En clair, est il possible de faire un truc du genre :
$msg = include("ma_page.php");

Ca me faciliterait grandement la tâche et simplifierait mon code.
J'espère être suffisament clair.
Merci d'avance de votre aide !

7 réponses

J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 9
26 oct. 2005 à 19:45
Salut,



J'ai posté une source.. une seule... une toute petite source...



Mais elle répond à ta question pour la question d'envoi de mail au format HTML :)



Comment l'utiliser dans ton cas :



<?php

// directement dans la page HTML que tu veux envoyer

ob_start();

?>

<!-- bla bla HTML -->

<?php

$message = ob_get_clean(); // ici tu récupère le message HTML



// et envoi du $message...

// tout simplement !!

?>
3
cs_Kysic Messages postés 332 Date d'inscription mardi 12 juillet 2005 Statut Membre Dernière intervention 17 juillet 2010
26 oct. 2005 à 19:51
Si j'ai bien compris, il faut utiliser:

$fp = fopen("ma_page.php", "r");

$cont = fread($fp, 255000);

fclose($fp);



puis $msg = "..."+$cont+".....";



Le problème étant ici que ci la page php n'est pas distante (sur un
autre serveur) cela va copier tout le code de la page php et non son
contenu, peut être quand uilisant son adresse complète
(http:\\serveur.ext\dossier\ma_page.php) le script sera interprété mais
je suis pas sur.

En éspérant que cela sera utile
0
cs_Kysic Messages postés 332 Date d'inscription mardi 12 juillet 2005 Statut Membre Dernière intervention 17 juillet 2010
26 oct. 2005 à 19:53
Désolés avait pas vu l'autre réponse lol (elle était pas encore postée en fait)
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 9
26 oct. 2005 à 19:56
Sinon...



tu peux effectivement faire

include "message.php"



Mais, c'est moins propre :





<hr size="2" width="100%">-- script message.php --

<?php

ob_start();

?>



blablabla...



<?php

$message = ob_get_clean();

?>

-- fine de message.php --





<hr size="2" width="100%">-- ton script de mail --

<?php

/* ... */

include "message.php";



mail($message, ...);

?>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
arnold002 Messages postés 121 Date d'inscription mercredi 27 octobre 2004 Statut Membre Dernière intervention 5 mars 2007
26 oct. 2005 à 20:08
Merci beaucoup Kysic,

J'ai essayé ta première solution et j'ai réussi, très simplement, à récupérer les données d'une requête mysql.
C'est vraiment génial.
Je ne connaissait pas cette fonction ob_start() et peu de site en font mention.
C'est royal !!!
Ca va vraiment me faciliter la tâche.
Merci encore
0
arnold002 Messages postés 121 Date d'inscription mercredi 27 octobre 2004 Statut Membre Dernière intervention 5 mars 2007
26 oct. 2005 à 20:11
Oupsss, désolé....
Merci à toi J_G, de ton aide
(et merci aussi à Kysic pour ses réponses)
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 9
26 oct. 2005 à 20:14
Pas de problème.



signé Kysic ;)
0