Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: yoelrodguez en 2 Abril 2016, 02:08 am



Título: Problema con phpmailer
Publicado por: yoelrodguez en 2 Abril 2016, 02:08 am
Hola a todos: tengo el siguiente problema estoy usando la librería phpmailer, para enviar correo con formato HTML  pero me está sucediendo que cuando envió el correo, me lo está enviando como texto plano. Los datos del cuerpo del mensaje, lo estoy generando con CKeditor los cuales los guardo en una tabla y de ahí los  recuperos y los envíos. A continuación les dejo el código.

Saludos


Código:
$xmail = new PHPMailer();
$xmail->IsSMTP();

$xmail->SMTPAuth = $config["auth"];
$xmail->SMTPSecure = "ssl";
$xmail->Host = $config["host"];
$xmail->Port = $config["port"];

$xmail->Username = $config["username"];
$xmail->Password = $config["password"];

$xmail->AddAddress($to);
$xmail->AddBCC($bcc);
$xmail->SetFrom($from);

$xmail->Subject = $subject;

$xmail->Body = $html;
$mail->AltBody = "Usted esta viendo este mensaje simple debido a que su servidor de correo no admite formato HTML.";
$xmail->IsHTML(true);




Título: Re: Problema con phpmailer
Publicado por: xiruko en 2 Abril 2016, 02:36 am
Hola,

En lugar de:
Código
  1. $xmail->Body = $html;

Prueba con:
Código
  1. $xmail->MsgHTML($html);

Saludos!


Título: Re: Problema con phpmailer
Publicado por: yoelrodguez en 2 Abril 2016, 17:10 pm
Hola todos: en el día de ayer publique este post en.  El cual tenía problema con el envío de correo,  y el tipo de formato en que me llegaba el correo. Hoy ya encontre la solución,  gracias a la sugerencia del cambio de metodo que me dijeron que hiciera, el cual me ayudo para solucionar el problema que tenia a continuación les comentos lo que me sucedía.

Yo estaba usando (htmlspecialchars) en el  $_post , para evitar la inyección de contenido el cual me hace un cambio en la estructura HTML  y aunque llegue el formato con la estructura HTML correo no lo muestra en el correo. Lo único que hay hacer  para que se solucione el problema es quitarlo del $_post y pasarlo a la etiqueta from en la ruta del path el cual también protege de la injeción de contenido.

Gracias por su ayuda.