Foros del Web » Programando para Internet » PHP »

Ayuda con la sentencia mail()

Estas en el tema de Ayuda con la sentencia mail() en el foro de PHP en Foros del Web. A ver si me puede aclarar lo que me esta pasando, tengo una pagina en la cual se accede mediante identificacion de usuario y clave, ...
  #1 (permalink)  
Antiguo 27/08/2004, 10:23
 
Fecha de Ingreso: julio-2003
Ubicación: Capital Federl
Mensajes: 60
Antigüedad: 20 años, 9 meses
Puntos: 0
Ayuda con la sentencia mail()

A ver si me puede aclarar lo que me esta pasando, tengo una pagina en la cual se accede mediante identificacion de usuario y clave, todo funciona correctamente, pero para evitar que los que los que se olvidaban las claves se volvieran a registrar arme una script que introduciendo en email con el cual se registraron les enviara a ese email las claves de acceso, ahora bien , todo funciona, introduzco el email , y a los segundos recibo las claves, salvo con los que tienen email de HOTMAIL !!, al principio pense que era un tema de demoras en el servidor de Hotmail, pero hice varias pruebas y hace ya un par de dias y jamas recibi nada, alguien me podria explicar cual es el problema.
Quiero suponer que tendra que ver con los email POP3 y los que no lo son.

Saludo a todos !
  #2 (permalink)  
Antiguo 27/08/2004, 10:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Más bien tiene que ver de dos cosas:

1) Tu MTA (el servidor de correo que usa PHP en su configuración SMTP o "sendmail" de php.ini) está limitando/filtrando/bloqueando los envios a esas cuentas de "Hotmail".

2) Tu e-mail es clasificado como SPAM por diferentes motivos por Hotmail (y algunos otros servicios de e-mail), ejemplo:

* Cabeceras HTTP no adecuadas para mail() o incompletas
* Envias el e-mail por una IP sin registros MX (no asociada a un domino .. caso de IP's de tu conexión a internet común ..)
* La IP/dominio que usa tu MTA (servidor SMTP de correo configurado para mail() de PHP) está clasificada como SPAM en alguna de las numerosas BD de ese tipo que existen ..

Un saludo,
  #3 (permalink)  
Antiguo 27/08/2004, 12:09
 
Fecha de Ingreso: julio-2003
Ubicación: Capital Federl
Mensajes: 60
Antigüedad: 20 años, 9 meses
Puntos: 0
Cluster. y hay alguna manera de solucionar esto ??, hay varias paginas que utilizan el mismo metodo y no le pasa lo mismo, que tendria que hacer como para que funcione correctamente.
Todavia estoy en etapa de aprendisaje.
  #4 (permalink)  
Antiguo 27/08/2004, 12:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ya te he comentado que no sólo hay un "factor" que influya en todo esto .. así que hay que evaluar e ir descartando.

Por ejemplo .. empieza por ver en tu Hotmail si tus e-mails llegan a tu "correo masivo" o tienes algún filtro activado sobre SPAM (prueba con otras cuentas ..)

Tampoco detallas donde está tu "sitio" .. no sabemos si es un servicio de hosting . .o es TU PC o que ...

Un saludo,

PD: Podrías poner el código que usas en mail() para ver que cabeceras HTTP usas ...
  #5 (permalink)  
Antiguo 27/08/2004, 13:34
 
Fecha de Ingreso: julio-2003
Ubicación: Capital Federl
Mensajes: 60
Antigüedad: 20 años, 9 meses
Puntos: 0
Cluster , te comento que por el lado de mi cuenta Hotmail , no tengo activado ningun antispam ni correo masivo, por otro tengo que pensar que algun usuario de la pagina , si lo tenga y entonces no recibiria sus claves ???
En cambio tengo activado antispam en otra cuenta de correo (no hotmail) y manda y recibo las claves correctamente.
Te mando el scripts completo de la pagina que hace la verificacion y manda el correo, a ver si aprecias algo que no este funcionando correctamente.

Un Abrazo

Las variables las envia un form (claveolv.php)
<?
//paso las variables
$email=$_POST["email"];
function comprobar_mail($mail){
if (!ereg("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$",$mail)){
return TRUE;
} else {
return FALSE;
}
}
if (strlen ($email)==0)
header("Location: claveolv.php?campovacio=1"); elseif (comprobar_mail($email)) {
header("Location: claveolv.php?emailerror=1");}
else {
//conecto con la base de datos
$conn = mysql_connect("localhost","usuario","password");
$base = "nombreBD";
$tabla = "nombreTabla";
$remitente="[email protected]";
//selecciono la BBDD
mysql_select_db($base,$conn);
//Sentencia SQL para buscar un usuario con esos datos
$ssql = "SELECT * FROM $tabla WHERE email='$email'and autorizado='si'";
//Ejecuto la sentencia
$rs = mysql_query($ssql,$conn);
//vemos si el email y si esta autorizado contraseña es váildo
//si la ejecución de la sentencia SQL nos da algún resultado
//es que si que existe esa conbinación email/autorizado
if (mysql_num_rows($rs)!=0){
header("Location: claveolv.php?envio=1");
$registro = mysql_fetch_array($rs);
mail ($email,"claves de acceso","Las claves de tu registro son las siguientes:
NOMBRE DE USUARIO $registro[nombre_usuario]
CLAVE DE USUARIO $registro[clave_usuario]","FROM: ".$remitente);
} else
header("Location: claveolv.php?emailinexis=1");
}
?>
<head>
<title>recuperar clave</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
</body>
</html>
  #6 (permalink)  
Antiguo 27/08/2004, 13:51
 
Fecha de Ingreso: julio-2003
Ubicación: Capital Federl
Mensajes: 60
Antigüedad: 20 años, 9 meses
Puntos: 0
ahhh, mi olvidaba tambien de comentarte, esta pagina esta alojada en un servcio de hosting pago , y no en mi PC.

Abrazo
  #7 (permalink)  
Antiguo 27/08/2004, 19:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno .. lo que te decía antes .. Estas usando muyyyyyyy pocas (por no decir nada) de las cabeceras standars de mail (del protocolo SMTP para mail) .. Puedes ver más de estas cabeceras en la própia documentación de PHP:

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

Personalmente para no complicarme con los "RFC's" que definen el protocolo SMTP . .yo uso la classe:

PHP Mailer
http://phpmailer.sourceforge.net

Implementa parte (bastante) del protocolo SMTP (cabeceras y otros detalles) para que tu e-mail sea lo más standard posible. (Además de permitirte enviar el e-mail vía mail() de PHP .. o por SMTP directo entre otros)

Un saludo,
  #8 (permalink)  
Antiguo 28/08/2004, 11:46
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 21 años, 5 meses
Puntos: 2
En el manual de php, hablán de este problema..., y de como solucionarlo en el archivo de la función mail, fijate en los post de los visitantes.

Un saludo.
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 20:22.