Foros del Web » Programando para Internet » PHP »

Enviar mails de forma segura...

Estas en el tema de Enviar mails de forma segura... en el foro de PHP en Foros del Web. ¡Hola! Tengo un servicio en mi web, donde el usuario pone su e-mail y recibe un link con un identificador... Cuando alguien va a ese ...
  #1 (permalink)  
Antiguo 23/02/2010, 08:52
 
Fecha de Ingreso: enero-2010
Mensajes: 214
Antigüedad: 9 años, 10 meses
Puntos: 4
Enviar mails de forma segura...

¡Hola!

Tengo un servicio en mi web, donde el usuario pone su e-mail y recibe un link con un identificador...

Cuando alguien va a ese link, escribe un texto y este es enviado al mail que se inscribió con ese identificador.

Me bloquearon hace poco el serividor por culpa de envío de correos a mails que no existen.

¿Cómo puedo evitar que se envíen los datos si el e-mail no existe?
  #2 (permalink)  
Antiguo 23/02/2010, 08:58
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 10 años, 1 mes
Puntos: 65
Respuesta: Enviar mails de forma segura...

Aparentemente con XAJAX se puede

http://www.coders.me/php/como-saber-...n-email-existe
__________________
HV Studio
Diseño y desarrollo web
  #3 (permalink)  
Antiguo 23/02/2010, 09:27
 
Fecha de Ingreso: enero-2010
Mensajes: 214
Antigüedad: 9 años, 10 meses
Puntos: 4
Respuesta: Enviar mails de forma segura...

Gracias, Ya había visto esa web antes, al buscar en internet... Pero no me sirve.

Si hay algún otro modo de hacerlo, lo agradecería...

Un saludo
  #4 (permalink)  
Antiguo 23/02/2010, 11:38
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 16 años
Puntos: 17
Respuesta: Enviar mails de forma segura...

Lo que puedes hacer es verificar si el dominio de la cuenta de correo es un dominio valido y si tiene registros MX , la función getmxrr te puede ayudar. ( Pero solo vas a saber si el domino es valido )


Ahora si no quieres enviar correos utilizando el mismo servidor (o el smtp configurado en el php.ini) puedes enviar correos utilizando otros smtp con PEAR:Mail o PHPMailer (inclusive el smtp de gmail).

Te ejemplos para PEAR:Mail y Phpmailer, ambos utilizando el smtp de gmail para enviar correos

Si vas a unas un smtp ssl como el de gmail, el servidor debes tener la libreria OpenSSL.


Saludos.
  #5 (permalink)  
Antiguo 23/02/2010, 15:43
 
Fecha de Ingreso: enero-2010
Mensajes: 214
Antigüedad: 9 años, 10 meses
Puntos: 4
Respuesta: Enviar mails de forma segura...

Ok, me interesa esta de verificar que el dominio sea válido, ya que aunque pueda seguir habiendo alguno falso, me quitaré del medio a una grandiosa parte...

¿Cómo lo haría?

Un saludo...
  #6 (permalink)  
Antiguo 23/02/2010, 17:33
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 10 años, 1 mes
Puntos: 65
Respuesta: Enviar mails de forma segura...

Cita:
Iniciado por MuchaDiversion Ver Mensaje
Ok, me interesa esta de verificar que el dominio sea válido, ya que aunque pueda seguir habiendo alguno falso, me quitaré del medio a una grandiosa parte...

¿Cómo lo haría?

Un saludo...
No creas que asegurarte el que el dominio sea valido te salva de algo eh... Imaginate esto:

- [email protected]
- [email protected]
- [email protected]
__________________
HV Studio
Diseño y desarrollo web
  #7 (permalink)  
Antiguo 23/02/2010, 20:49
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 16 años
Puntos: 17
Respuesta: Enviar mails de forma segura...

Cita:
Iniciado por jackson666 Ver Mensaje
No creas que asegurarte el que el dominio sea valido te salva de algo eh... Imaginate esto:

- [email protected]
- [email protected]
- [email protected]
De forma de exacta no puedes identificar que una cuenta realmente exista (amenos que le envies un correo y si este no rebota, haga click sobre un enlace, etc.) y el problema que tiene el muchacho es ese, que ha realizado mucho envios de verificación a cuentas que no existen.

Entonces no le quedan mas remedios que verificar que el dominio del correo exista, tenga un registro mx, que el usuario no realice floods,etc.

De todas formas, si tu proveedor de hosting no te deja usar el smtp del servidor, utiliza uno externo (de tu isp,gmail,etc.) y eso lo puede hacer con PEAR:Mail o Phpmailer.

Para verificar que un dominio tenga un registro mx en sus dns utiliza la función getmxrr

Código PHP:
if ( getmxrr  "gmail.com"  $mxhosts ) )
{
    echo 
"Dominio tiene registros MX";
    
print_r$mxhosts );
}
else
{
    echo 
"El dominio no cuenta con registros mx";


Última edición por DeeR; 23/02/2010 a las 20:51 Razón: while
  #8 (permalink)  
Antiguo 24/02/2010, 07:14
 
Fecha de Ingreso: enero-2010
Mensajes: 214
Antigüedad: 9 años, 10 meses
Puntos: 4
Respuesta: Enviar mails de forma segura...

Ok, muchas gracias :P

¿Cómo hago para sacar el dominio y guardarlo en una variable?

Habría que usar una expresión regular...
¿pero cómo almaceno todo lo que vaya después del @ en una variable?

Un saludo!
  #9 (permalink)  
Antiguo 24/02/2010, 07:42
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 10 años, 1 mes
Puntos: 65
Respuesta: Enviar mails de forma segura...

Código PHP:
$mail "[email protected]";
$pos strpos($mail,'@');
$dominio substr($mail,$pos,strlen($mail));
echo 
$dominio
__________________
HV Studio
Diseño y desarrollo web
  #10 (permalink)  
Antiguo 24/02/2010, 09:12
 
Fecha de Ingreso: enero-2010
Mensajes: 214
Antigüedad: 9 años, 10 meses
Puntos: 4
Respuesta: Enviar mails de forma segura...

Gracias... Pero en esa función la variable dominio seguía conteniendo el @ delante.

Al fin lo he solucionado gracias a o todos y buscando un poco de info

Código PHP:
if(preg_match('/^([a-zA-Z0-9._%-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})*$/',$mail)){
                           if(
checkdnsrr(array_pop(explode("@",$mail)),"MX")){
                           
mysql_query("INSERT INTO `mitablajeje` (`campo1`,`elotro`) VALUES ('" $mail "','" $fecha "')");
                           
$lastid=mysql_insert_id();
                           echo 
"<div class='infogreen' style='margin-bottom:8px;'>Enhorabuena</div><div class='infoyellow'>Has creado correctamente tu link de enga&ntilde;o.<br /><br />D&aacute;selo a quien quieras, y sabr&aacute;s su amor secreto<hr /><strong>http://muchadiversion.com/servicios/test/testamor.php?id=" $lastid "</strong></div>";
                           }else{
                           echo 
"<div class='infogreen' style='margin-bottom:8px;'>Error</div><div class='infoyellow'>El dominio de su correo electr&oacute;nico no existe<br /><br /><a href='./'>Regresar</a></div>";
                           }
                   }else{
                   echo 
"<div class='infogreen' style='margin-bottom:8px;'>Error de estructura</div><div class='infoyellow'> Este correo no es v&aacute;lido | " htmlentities($mail) . "<br /><br /><a href='./'>Regresar</a></div>";
                   } 
Un saludo!
  #11 (permalink)  
Antiguo 24/02/2010, 09:42
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 10 años, 1 mes
Puntos: 65
Respuesta: Enviar mails de forma segura...

Código PHP:
$mail "[email protected]";
$pos strpos($mail,'@');
$dominio substr($mail,($pos+1),strlen($mail));
echo 
$dominio
Me alegro que lo hayas podido resolver
__________________
HV Studio
Diseño y desarrollo web

Etiquetas: enviar, mails, segura, formulario
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 01:39.