Inclure page dans fonction mail

Signaler
Messages postés
215
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
19 février 2009
-
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015
-
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

Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
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 ! :)
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

Ouep... sinon tu fais un fichier texte (ou autre) et tu fais $body = file_get_contents('mapage.txt');

@ tchaOo°
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

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°
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

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°