Hola a todos,
estoy trabajando con el phpmailer para el envío de mails desde mi web y funciona correctamente. Sin embargo, necesito saber si una dirección introducida por el usuario es válida o no.
Si el usuario introduce una dirección inválida al estilo: "asdfasdfjhsdjfh", el send devuelve un error y puedo avisar al usuario de que la dirección no es válida.
Sin embargo, si el usuario introduce una dirección del estilo:
[email protected], el send se ejecuta y, al parecer, envía algo a esa dirección aunque no exista.
Al menos no me da problemas y la función send() no devuelve false.
Parece ser que detecta que es una "posible" dirección válida al llevar el carácter "@" y no se queja, pero yo necesito asegurarme de que el mail ha llegado correctamente a su destino.
¿Cómo lo hago?
¿Alguien sabe si hay alguna función que te garantice esto?
Mi código:
//se envia el mensaje, si no ha habido problemas
//la variable $exito tendra el valor true $exito = $mail->Send(); //Si el mensaje no ha podido ser enviado se realizaran 4 intentos mas como mucho
//para intentar enviar el mensaje, cada intento se hara 5 segundos despues
//del anterior, para ello se usa la funcion sleep $intentos=1; while ((!$exito) && ($intentos < 5)) {
sleep(5); //echo $mail->ErrorInfo;
$exito = $mail->Send();
$intentos=$intentos+1;
}
He probado 3 opciones.
Dirección válida:
[email protected] -> Se envía correctamente.
Dirección inválida: dkfjgskdfjgksdfjgksdjfkgj -> El Send devuelve false y, tras 5 intentos muestra el error y no envía el mail.
Dirección válida pero
inexistente:
[email protected] He aquí mi problema, el send no devuelve false y yo no me entero de si se ha enviado o no el mail.
¿Cómo lo averiguo
Un saludo