Problème de données php dans envoi de mail html

Problème de données php dans envoi de mail html - HTML/CSS - Programmation

Marsh Posté le 28-07-2015 à 14:25:42    

Bonjour à tous,
 
Alors je vous expose mon problème,  
En gros je récupère des informations dans un formulaire via du PHP et du JS (où j'effectue des calculs etc.) et ensuite je dois envoyer un mail en html contenant les résultats du formulaire.
Au sein de ma page de mail en html j'ai ce code  

Code :
  1. <span style="font-size:62px;font-family:Helvetica,sans-serif;color:#cd003a;"><b><?php echo  $mail_total; ?></b> &euro;</span>


Le soucis est que dans mon mail mon contenu en php ne s'affiche pas, "logique" me direz vous étant donné que le mail doit etre en HTML.
Donc voila je me tourne vers vous car je n'ai pas trouvé de solution fonctionnelle malgré mes recherches.
 
si je n'ai pas été clair n'hésitez pas a me demandé des précisions ;)
 

Reply

Marsh Posté le 28-07-2015 à 14:25:42   

Reply

Marsh Posté le 28-07-2015 à 14:46:15    

Comment tu envoi ton mail ?
En php non ?
Du coups tu doit charger ton html dans une variable avant de l'envoyer à ta fonction mail() (ou mieux à ton instance de PHPMailer)...
Si c'est le cas il suffit de remplacer ton <?php echo  $mail_total; ?> par un {mail_total} dans ton template html et de faire un $body_html = str_replace('{mail_total}', $mail_total, $body_html);


---------------
D3
Reply

Marsh Posté le 28-07-2015 à 15:06:12    

Oui j'envoi mon mail en php.
 
Mes variables sont déclarées en php au début du template html  

Code :
  1. $mail_total = isset($mail_total) ? $mail_total : '';


 
J'ai du mal à comprendre où je dois mettre le  

Code :
  1. $body_html = str_replace('{mail_total}', $mail_total, $body_html);


 
Merci pour la réponse rapide en tout cas ;)

Reply

Marsh Posté le 28-07-2015 à 15:25:28    

Il parle d'un éventuel template en html dans lequel, à l'endroit où doivent s'afficher le contenu d'une variable php, tu utilise une pseudo-balise, une tag quoi tel que {mavariable}. Pour remplacer ce tag par la valeur de la variable un simple str_replace :
$resultat = str_replace("{mavariable}", $mavariable, $bodyhtml);
Ca remplacera la chaîne {mavariable} dans $bodyhtml par $mavariable.
 
Pour ton pb, est ce que ton mail html contient le prologue d'une page html (doctype, <html> et <body> ) ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 28-07-2015 à 15:40:59    

Ouep j'ai bien compris pour le tag je vois l'idée ;)
Juste que je ne vois pas ou utiliser le  
 
$resultat = str_replace("{mavariable}", $mavariable, $bodyhtml);  
 
mon mail contient tous les prologues html oui ;)

Reply

Marsh Posté le 28-07-2015 à 15:52:36    

Si tu envoie ton mail en php, à un moment donné tu met ton template html dans une variable (avec on object_flush, un readfile, etc.) pour le passer en paramètre à ta fonction d'envoi de mail, c'est sur cette variable qu'il faut faire le str_replace...


---------------
D3
Reply

Marsh Posté le 28-07-2015 à 16:07:31    

C'est bon j'ai compris comment l'utiliser ! :bounce:  
Et ça fonctionne !  
 
Merci beaucoup à vous deux !  
 
Bon après midi :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed