Foros del Web » Programando para Internet » PHP »

mail() en formato HTML

Estas en el tema de mail() en formato HTML en el foro de PHP en Foros del Web. Hola a todos, En julio tuve un problema parecido al de ahora y me lo resolvieron aquí: http://www.forosdelweb.com/f18/error...xisten-605094/ Pense que estaba solucionado porque a mi ...
  #1 (permalink)  
Antiguo 01/09/2008, 11:33
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 18 años, 5 meses
Puntos: 3
mail() en formato HTML

Hola a todos,


En julio tuve un problema parecido al de ahora y me lo resolvieron aquí:
http://www.forosdelweb.com/f18/error...xisten-605094/

Pense que estaba solucionado porque a mi correo me llega bien, pero ahora me he dado cuenta que a otros correos sigue fallando, lo he probado en 2 pcs distintas y en el MS Outlook 2003 y el Outlook Express.

el síntoma es el mismo, es decir, cuando envío un mail en formato HTML llega sin remitente, el asunto si me llega, y el cuerpo del mail me llega así:

Código:
Content-type: text/html; charset=iso-8859-1 From: [email protected]


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 

</head>

<body>


Gracias carlos por registrarse.
<br /><br />
Le recordamos sus datos de conexi&oacute;n:
<br /><br />
E-mail: [email protected]
<br />
Contrase&ntilde;a: sdsdsd
<br />
<br />


</body>
</html>
En From: pongo una dirección válida y sigue igual

Lo que más me esta rayando es lo siguiente:

* si en From: pongo [email protected] y en el formulario pongo [email protected] SI llega bien.
* si en From: pongo [email protected] y en el formulario pongo [email protected] NO llega bien.
* si en From: pongo [email protected] y en el formulario pongo [email protected] NO llega bien.

y ambas cuentas existen y están bien escritas...!!!!

El código de PHP que interesa es el siguiente:

Código PHP:

<?php 

/* 
la funcion utf8_decode() la estoy utilizando porque 
el form originalmente viene de un flash y para que 
aparezcan bien los acentos y las ñ
*/


// CUERPO DEL MENSAJE 
$cuerpo 
'

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title>Press</title>
    </head>
<body bgcolor="#CCCCCC">
<div style="color:#000099">
Gracias '
.utf8_decode($_POST['nombre']).' por registrarse.
<br /><br />
Le recordamos sus datos de conexi&oacute;n:
<br /><br />
E-mail: '
.utf8_decode($_POST['mail']).'
<br /> 
Contrase&ntilde;a: '
.utf8_decode($_POST['pass']).'
<br />
<br />
</div>

</body>
</html>
'




// DESTINATARIOS
$destinatario $_POST['mail'];

// ASUNTO DEL MENSAJE 
$asunto 'PRENSA'


//para el envo en formato HTML 
$headers  'MIME-Version: 1.0' "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";

//direccin del remitente 
$headers .= 'From: [email protected]'."\r\n"
  

$mail_cli mail($destinatario,$asunto,$cuerpo,$headers); 


?>

Lo tengo subido aquí para que puedan probarlo y más que todo, puedan ver un log que he creado por si sirve de algo, con los siguientes datos: Las variables POST que envía el formulario, los atributos que pondo en la función mail() y el resultado de mail().


ESTOY DESESPERADO... ya que me he pasado todo el día con esto, buscando en google como mandar mails en formato HTML, y en php.net utilizando los ejemplos que vienen en la descripcion de la funcion mail() y no se porque falla.

Gracias de antemano por su ayuda

Saludos

Carlos
  #2 (permalink)  
Antiguo 01/09/2008, 20:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: mail() en formato HTML

Te recomendaria que implementaras Zend_Mail o en dado caso PHPMailer, con él puedes codificar tus mails de forma correcta.

Saludos.
  #3 (permalink)  
Antiguo 01/09/2008, 20:36
Avatar de pato_volador  
Fecha de Ingreso: octubre-2005
Ubicación: Planeta tierra
Mensajes: 254
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: mail() en formato HTML

date una vuelta por phpclasses.org alli encontraras un monton de clases para gestionar el envio de mails y como decia el buen Cluster "no hay necesidad de estar reinventando la rueda" PHPMailer es un gestor excelete, que además de permitir el envio de mensajes con formato html te da el chance de enviar su version de texto plano.

saludos
__________________
De todas las cosas que queria ser... :-D acabe siendo un pato volador... :risa:
http://patovolador.wordpress.com
  #4 (permalink)  
Antiguo 02/09/2008, 02:33
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 18 años, 5 meses
Puntos: 3
Respuesta: mail() en formato HTML

OK, gracias, lo miraré, pero igual me parece super raro lo que pasa, supuestamente estoy siguiendo "exactamente" lo que dice en php.net pero no me funciona bien.

Lo raro es que con algunos si funciona y otros no, otro ejemplo que me pasa y que no lo puse para no rayarlos más, es que en yahoo por pop3 me llegan siempre bien, y en otra cuenta pop q tengo siempre me llegan mal, estas dos cuentas son independientes a dominio1.com y dominio2.com que para colmo están en el mismo hosting.

Bueno, me pondré con PHPMailer a ver como es.

Gracias
  #5 (permalink)  
Antiguo 02/09/2008, 06:09
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 18 años, 5 meses
Puntos: 3
Respuesta: mail() en formato HTML

todo un exito el PHPMailer, y es super facil de usar .

Gracias por la ayuda

Saludos
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 00:30.