2009-12-03 2 views
0

Je travaille pour envoyer un email avec le corps html. Le corps html est posté par php variable avec ajax. mais tout le HTML sera ignoré.html problème d'email avec variable php posté

par exemple dans email.php

élément HTML

<textarea id="html" cols="20" name="TextArea1" rows="2">HTML code is here</textarea> 

Javascript

var html = $("#html").val(); 
$.post("function.php", { html: html }, function(data) { 

    if(data){ 
    //do sth 

     } 
     }); 

et en fonction php

$body = ""; 
    $body .= $_POST['html']; 

    //send email 

J'ai essayé mais html_entity_decode pas de chance. l'email est envoyé, vient sans éléments html. Comment puis-je faire ceci ?

Merci

EDIT: Je suis le problème, en HTML, il y a «caractère et elle perturbe la structure HTML.

Mais comment puis-je éviter cela, je ne sais pas encore ...

EDIT 2: stripslashes() fait! Merci ...

Répondre

0

Je voudrais obtenir firebug et essayer de parcourir le processus dans le navigateur & regarder exactement ce que vous passez à la page php. Vous pouvez constater que vous ne publiez rien. J'imagine que si PHP l'obtenait, il devrait au moins être capable de l'imprimer pour vous en écho. A quoi ressemble le code d'envoi de courrier électronique?

+0

Je l'ai fait, il passe le code HTML parfaitement. mais quand il envoie un e-mail, seul le texte apparaît sans éléments HTML (tableaux, cellules etc ..) dans l'e-mail ... –

0

Pour envoyer HTML, vous devez inclure les en-têtes supplémentaires, voir l'exemple n ° 4 dans les php docs: http://php.net/manual/en/function.mail.php

+0

j'utilise phpmailer, et tous les paramètres sont ok pour les emails html, il devrait s'agir de variables, n ': S –

0

Si («) être signifie que votre problème, essayez

$layout = addslashes($_POST['html']); 

Il ajoutera backslash comme (\ ») à les valeurs.

+0

thx, stripslashes() est la chose qui fait fonctionner ça ... –