Inclure page dans fonction mail

yoarf Messages postés 215 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 19 février 2009 - 13 déc. 2005 à 12:28
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015 - 13 déc. 2005 à 14:00
Bonjour à tous,

J'aimerais savoir s'il était possible d'envoyer une page avec la fonction mail. Je m'explique : il est possible, en déclarant dans le header, d'ajouter un Mime type et un encodage, afin d'activer la prise en compte des balises HTML/XHTML/CSS, etc.

J'aimerais donc pour mon site mettre en place un envoie de mail, pour diverses application (rappels, activations de comptes, etc), mais mis en forme avec les pages de mon site.

Mais, avec la fonction mail, on est "obligé" de découper notre page et de l'incure dans une seule variable, puisqu'on l'utilise ainsi :

$subject = "T'as vu comme t'es beau ?" ;
$msg = "Titre test

Voici un test de mail !" ;
$header = "From:plop@plopcomn" ;
$header .= "MIME-version: 1.0n" ;
$header .= "Content-type: text/html; charset= iso-8859-1n" ;
mail($dest, $subject, $msg, $header);

Mais je me vois très mal parser toute ma page pour la faire tenir dans une variable, surtout qu'elle n'aura plus aucun dynamisme (include entre autre).

Bref, ya-t-il un moyen de carrément inclure la page lors de l'envoie du mail, plutot que de passer une variable ?

Par exemple :

mail($dest, $subject, "page.php", $header);
mail($dest, $subject, include("page.php"), $header);

Je ne les ai pas testé, et je doute que ces exemples marchent, c'est pourquoi je cherche une solution fiable à mon problème :p

Merci d'avance !

Y.C

4 réponses

FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
13 déc. 2005 à 13:03
Nononon, tu ne peux pas faire ca :o
Un include(), comme son nom l'indique, ne fait qu'inclure une page dans un script. Sans plus !
Ce que tu peux faire, c'est que dans ta page : 'page.php', tu as une variable qui contient tout le texte que tu veux envoyer.
Tu inclus ta page et tu fais :
mail ($dest, $subject, $body, $header); // En supposant que $body soit la variable qui contient le texte.

Y'a aucun autre moyen. Et je vois pas en quoi faire tenir du texte dans une variable relève de l'exploit. Regarde les sources sur les templates, c'est 15 fois plus lourd et ca marche pourtant bien ! :)
0
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
13 déc. 2005 à 13:54
Ouep... sinon tu fais un fichier texte (ou autre) et tu fais $body = file_get_contents('mapage.txt');

@ tchaOo°
0
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
13 déc. 2005 à 13:57
Ah j'oubliais et si tu as des variable à changer dans le corp du message tu fais...

$string = array('{titre}', '{nom}', '{pwet}');
$replace = array('coucou', 'Rober', 'plop');

$body = str_replace( $string, $replace, file_get_contents('mapage.txt'));

@ tchaOo°
0
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
13 déc. 2005 à 14:00
Muarf je vais y arriver... désolé pour le flood... c'est juste pour préciser que si on suit mon exemple tu met {titre}, {nom}, etc... dans le message mais tu peux leur mettre la forme que tu veux (%titre%, @titre@ enfin bref)... mais je pense que tu l'aura compris (mais je prefere le préciser)... .. .

@ tchaOo°
0
Rejoignez-nous