Envoi de mail : comment faire appel à une page php dans le message à envoyer [Résolu]

Signaler
Messages postés
121
Date d'inscription
mercredi 27 octobre 2004
Statut
Membre
Dernière intervention
5 mars 2007
-
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
-
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

Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
7
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 !!

?>
Messages postés
332
Date d'inscription
mardi 12 juillet 2005
Statut
Membre
Dernière intervention
17 juillet 2010

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
Messages postés
332
Date d'inscription
mardi 12 juillet 2005
Statut
Membre
Dernière intervention
17 juillet 2010

Désolés avait pas vu l'autre réponse lol (elle était pas encore postée en fait)
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
7
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, ...);

?>
Messages postés
121
Date d'inscription
mercredi 27 octobre 2004
Statut
Membre
Dernière intervention
5 mars 2007

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
Messages postés
121
Date d'inscription
mercredi 27 octobre 2004
Statut
Membre
Dernière intervention
5 mars 2007

Oupsss, désolé....
Merci à toi J_G, de ton aide
(et merci aussi à Kysic pour ses réponses)
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
7
Pas de problème.



signé Kysic ;)