Foros del Web » Programando para Internet » PHP »

mail php muestra el código html en lugar de interpretarlo

Estas en el tema de mail php muestra el código html en lugar de interpretarlo en el foro de PHP en Foros del Web. Bueas a tod@s, hasta hace poco utilizaba la función mail() de php para enviar correos, y todo funcionaba bien. Mi código era Código PHP: $correo  ...
  #1 (permalink)  
Antiguo 27/01/2016, 07:44
 
Fecha de Ingreso: febrero-2015
Ubicación: Murcia
Mensajes: 29
Antigüedad: 9 años, 1 mes
Puntos: 0
mail php muestra el código html en lugar de interpretarlo

Bueas a tod@s, hasta hace poco utilizaba la función mail() de php para enviar correos, y todo funcionaba bien.

Mi código era

Código PHP:
$correo $_GET['correo'];
$destinatario $correo
$asunto $_SESSION['usuario'].' Desde MiWeb.es';
$cuerpo ='Aquí iba el html del cuerpo del mensaje';

$headers "MIME-Version: 1.0\r\n"
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$headers .= "From: MiWeb.es <[email protected]>\r\n";
        
if (
mail("$destinatario""$asunto""$cuerpo""$headers")){
echo 
'Aquí iba el código si todo era correcto';
}
else{
echo 
'Aquí iba el código si algo fallaba';

Todo funcionaba perfectamente, pero desde hace unas semanas, el hosting donde tengo alojada la página web ha dejado de permitir la función mail de php y ahora hay que usar smtp.

Tengo el siguiente código:

Código PHP:
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp Mail::factory('smtp',
array (
'host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));

$mail $smtp->send($to$headers$body); 
El correo se envía y llega al destinatario, pero el problema es que en lugar de aparecer el cuerpo del mensaje, se ve el código html; es decir, lo que ve el usuario cuando abre el correo es:
<html>
<head>
<title>...

No sé donde puede estar el problema, agradecería cualquier ayuda que puedan darme, muchas gracias de antemano
  #2 (permalink)  
Antiguo 27/01/2016, 08:01
Avatar de gersveo  
Fecha de Ingreso: julio-2008
Mensajes: 145
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: mail php muestra el código html en lugar de interpretarlo

Prueba esto...

Código PHP:

$headers 
= array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp Mail::factory('smtp',
array (
'host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));


$crlf "\n";
$mime = new Mail_mime($crlf); 
$mime->setHTMLBody($body);
$body $mime->get();
$headers $mime->headers($headers);

$mail $smtp->send($to$headers$body); 
  #3 (permalink)  
Antiguo 27/01/2016, 08:25
 
Fecha de Ingreso: febrero-2015
Ubicación: Murcia
Mensajes: 29
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: mail php muestra el código html en lugar de interpretarlo

gersveo, he probado el código que dices pero me dice que hay un error, que el servidor no responde o que el archivo está mal configurado...

Etiquetas: html, lugar, mail, muestra
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:35.