Foros del Web » Programando para Internet » PHP »

Problema con funcion mail()

Estas en el tema de Problema con funcion mail() en el foro de PHP en Foros del Web. He aquí algo raro que pasa. Cuando mando un email con HTML a Hotmail, lo manda perfectamente. Pero, en otros como Yahoo! no corre el ...
  #1 (permalink)  
Antiguo 06/03/2003, 12:41
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
Problema con funcion mail()

He aquí algo raro que pasa.

Cuando mando un email con HTML a Hotmail, lo manda perfectamente. Pero, en otros como Yahoo! no corre el HTML, solo se ve el puro código.

Si quieren revisar, vean y envien algo a ustedes mismos de las notas que tengo en mi web de Ladodos.com.

Aquí esta el código.

Código PHP:
<? if ($asunto=="") { ?><form action="" method="post">
<input type="hidden" name ="asunto" value="Ladodos.com - <? echo $cabeza;?>"><br>
<b>Para:</b> <input type="text" name="destino"
size="30"><br>
<input type="submit" value="Enviar!">
</form><? } else { if($destino!=""){
$mensaje="<html><xbody><center><img src='http://www.ladodos.com/imagenes/ld.gif'></center><br><h3><center><font face=Arial><a href='http://www.ladodos.com/noticias.ld/notas.php?id=";
$mensaje.="$id"// definida previamente
$mensaje.="'>$cabeza"// definida previamente
$mensaje.="</a></font></center></h3>";
$mensaje.="<br><br><font face=Arial>$entrada</font>"// definido previamente
$mensaje.="<br><br><font face=Arial>$nota</font><br><br><center><h2>Mas información en <a href=http://www.ladodos.com>Ladodos.com</a>.</h2></center></xbody></html>"// la variable nota tambien estuvo definida previamente


mail($destino$asunto$mensaje"FROM: [email][email protected][/email]");


echo 
"Se ha enviado el mensaje a $destino correctamente";
}
else{
echo 
"Debes escribir un destinatario válido para enviar el
email"
;
}
?>
Gracias.
  #2 (permalink)  
Antiguo 06/03/2003, 13:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No veo en tu código por ningun sitio las cabceras HTML que has de indicar para que se reconozca a tu e-mail como un mensaje en HTML ..

fijate en:
http://www.php.net/manual/en/function.mail.php

El 4º parámetro de la funcion mail() son las cacberas .. Ahora mismo ya las estas usando para el "FROM" .. pero si ni indicas nada mas .. se envia tu mail como "texto plano" ..

Código PHP:
$headers  "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

/* additional headers */
$headers .= "From: Birthday Reminder <[email protected]>\r\n";

mail($destino$asunto$mensaje$headers); 
Y como veras en el manual de PHP ( o mejor aun en sus RFC correspondientes al protocoolo SMTP) veras que hay muchas mas cabeceras para hacer mas cosas como .. usar campos BCC .. CC .. etc ... Lo único que PHP y su función mail() el soporte q dan es muyy básico .. si quiers algo mas extra q enviar un mail en texto plano tienes q poner TU a mano las cabeceras q correspondan ..

Un saludo,
  #3 (permalink)  
Antiguo 06/03/2003, 13:55
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
mmm... peor

Código PHP:
$headers  "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: Ladodos.com <[email protected]>\r\n";



mail($destino$asunto$mensaje$headers); 
Incluí esto en el script, y ahora no me llega a ningún lado...

¿Que será?
  #4 (permalink)  
Antiguo 06/03/2003, 14:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
mmm Prueba en el FROM: a poner solo tu e-mail .. como antes lo tenías .. pero respete las cabeceras de HTML ..

Tambien podrías probar el ejemplo de PHP.net (el link q di es de la funcion mail() ).. y leer los comentarios de los usuarios.

Un saludo,
  #5 (permalink)  
Antiguo 06/03/2003, 14:57
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Tambien prueba a verlo en un cliente de correo normal, como Outlook. Tambien comprueba la configuracion de Hotmail y Yahoo, y mira si esta el mensaje en la carpeta de SPAM.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 06/03/2003, 15:49
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
Bueno, ya comprobe algo...

El texto enriquecido, ya sea en Hotmail, o en Yahoo!, tardan en llegar, como unos 15 minutos, bastante tiempo. Alguna sugerencia?
  #7 (permalink)  
Antiguo 06/03/2003, 16:01
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Pero llegan y se ven bien. Prueba a mandarlo a una cuenta normal y leerlo con Outlook o Eudora. Y mira el peso del mensaje.

Pero creo que el problema no es de PHP, sino de los servidores de correo intermedios. Quizas tardan tanto porque son escaneados buscando viros y demas. O simplemente te ha coincidido que en ese momento a tardado mas y si lo pruebas ahora llegan "enseguida".

Hay que tener en cuenta que son servicios "gratuitos".

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 11:56.