2012-06-21 22 views
16

Estoy usando PHPmailer para enviar correos electrónicos.PHPmailer enviando HTML CÓDIGO

También he utilizado HTML = contenido verdadero tipo

$mail = new PHPMailer(); 

$mail->IsSMTP();     // send via SMTP 
$mail->Host  = $Host; 
$mail->SMTPAuth = true;    // turn on SMTP authentication 
$mail->Username = $Username; 
$mail->Password = $Password; 

$mail->From  = $From; 
$mail->FromName = $FromName; 

    $mail->AddAddress($To , $ToName); 

$mail->WordWrap = 50;    // set word wrap 
    $mail->Priority = 1; 
$mail->IsHTML(true); 
$mail->Subject = $Subject; 
$mail->Body  = $Body; 

Una vez que el correo electrónico se envía veo el código HTML real en lugar del contenido favor, consulte más abajo

enter image description here

** No seguro cuál es el problema **

+0

¿Puede mostrar el código que está utilizando para llenar el cuerpo? –

+0

¿Estás haciendo '$ mail-> Body ($ your_html_html)'? –

+0

@MarcB sí, estoy usando $ mail-> Body = $ Body; – user580950

Respuesta

49

Llamando al método isHTML() después de la instancia Body prop erty (me refiero a $mail->Body) se ha establecido resolvió el problema para mí:

$mail->Subject = $Subject; 
$mail->Body = $Body; 
$mail->IsHTML(true);  // <=== call IsHTML() after $mail->Body has been set. 
+0

Eso es correcto, pero nunca debe llamar a '$ mail-> ClearCustomHeaders();' después de '$ mail-> IsHTML (true)'. 'ClearCustomHeader' elimina el formato HTML de su correo electrónico y, en su lugar, el destinatario recibirá el código fuente HTML. –

-1

justo lo necesario para pasar cierto como argumento de la función() IsHTML.

2

o si tiene problemas que aún puede utilizar este

$mail->Body = html_entity_decode($Body); 
4

// Con permiso de mi método de principiante Inglés

Hay msgHTML(), que, además, llamar IsHTML().

Hrm ... IsHTML nombre es confuso ...

/** 
* Create a message from an HTML string. 
* Automatically makes modifications for inline images and backgrounds 
* and creates a plain-text version by converting the HTML. 
* Overwrites any existing values in $this->Body and $this->AltBody 
* @access public 
* @param string $message HTML message string 
* @param string $basedir baseline directory for path 
* @param bool $advanced Whether to use the advanced HTML to text converter 
* @return string $message 
*/ 
public function msgHTML($message, $basedir = '', $advanced = false) 
-2

hacer como esto y pegar el código HTML dentro de su archivo HTML independiente utilizando el método GET.

$mail->IsHTML(true);         
    $mail->WordWrap = 70;         
    $mail->addAttachment= $_GET['addattachment']; $mail->AltBody 
    =$_GET['AltBody']; $mail->Subject = $_GET['subject']; $mail->Body = $_GET['body']; 
-2

todo lo que necesita hacer es simplemente agregar $ mail-> IsHTML (true); al código que funciona bien ..

0

En la versión 5.2.7 Lo utilizo para enviar mensajes de texto sin formato: $mail->set('Body', $Body);

-2

Lo que casi me mata, estaba definí $ mail-> AltBody. Después de eliminar esto, todo funcionó

Cuestiones relacionadas