Tengo un cliente con 5000 correos electrónicos de una lista anterior que tiene y quiere promocionar sus servicios. Él quiere saber qué correos electrónicos en la lista siguen siendo válidos. Quiero verificarlos por él, sin enviar correos electrónicos de 5K al azar y luego aparecer como spammer o algo así. Ideas?¿Cómo verifico si una dirección de correo electrónico es válida sin enviarle nada?
Respuesta
bucabay's respuesta es el camino a seguir. Lo que básicamente hace una biblioteca como esa es verificar el registro DNS existente para servidores (correo) en dominios específicos (A, MX o AAAA). Después de eso, hace lo que se denomina verificación de devolución de llamada. Ahí es donde se conecta al servidor de correo, le dice que desea enviar a una dirección de correo electrónico en particular y ver si dicen OK.
Para la verificación de devolución de llamada, debe tener en cuenta que los servidores de listas grises dicen que todo está bien, por lo que no hay garantía del 100% sin enviar los correos electrónicos. Aquí hay un código que utilicé cuando hice esto manualmente. Es un parche en el analizador de direcciones de correo electrónico de here.
#
# Email callback verification
# Based on http://uk2.php.net/manual/en/function.getmxrr.php
#
if (strlen($bits['domain-literal'])){
$records = array($bits['domain-literal']);
}elseif (!getmxrr($bits['domain'], $mx_records, $mx_weight)){
$records = array($bits['domain']);
}else{
$mxs = array();
for ($i = 0; $i < count($mx_records); $i++){
$mxs[$mx_records[$i]] = $mx_weight[$i];
}
asort($mxs);
$records = array_keys($mxs);
}
$user_okay = false;
for ($j = 0; $j < count($records) && !$user_okay; $j++){
$fp = @fsockopen($records[$j], 25, $errno, $errstr, 2);
if($fp){
$ms_resp = "";
$ms_resp .= send_command($fp, "HELO ******.com");
$ms_resp .= send_command($fp, "MAIL FROM:<>");
$rcpt_text = send_command($fp, "RCPT TO:<" . $email . ">");
$ms_resp .= $rcpt_text;
$ms_code = intval(substr($rcpt_text, 0, 3));
if ($ms_code == 250 || $ms_code == 451){ // Accept all user account on greylisting server
$user_okay = true;
}
$ms_resp .= send_command($fp, "QUIT");
fclose($fp);
}
}
return $user_okay ? 1 : 0;
Tenga cuidado con la verificación de devolución de llamada/verificación de la dirección del remitente. Existe un debate sobre su utilidad (consulte http://en.wikipedia.org/wiki/Callback_verification referencias, por ejemplo) y algunos RBL le incluirán _just_ para hacer verificaciones de la dirección del remitente. – sync
Esto se ve extremadamente útil KTC - ¿hay alguna manera de que pueda usarlo con el código al que se hace referencia en la respuesta de Bucabay? – Matt
Tendrá que enviarlas por correo electrónico al menos una vez.
- Cree una nueva lista de correo. Envíe a la lista anterior un correo electrónico con un enlace en el que deben hacer clic para continuar recibiendo mensajes (volver a suscribirse).
- Envíales a todos un correo electrónico y recoge todos los rebotes de respuesta en una cuenta de correo electrónico real, luego purga los correos electrónicos devueltos de tu lista principal.
- Envíeles todos un correo electrónico en HTML, y una de las imágenes se aloja de forma remota y requiere una identificación única para solicitarla que configure en cada correo electrónico. Cuando su servidor web devuelve esa imagen a su cliente, puede considerar ese correo electrónico como activo. Esto se llama web bug, y solo funcionará si la persona carga automáticamente imágenes remotas en su cliente.
La validación de imágenes no siempre funciona, ya que la mayoría de las organizaciones (ya sé) suprimen las imágenes eliminadas de forma predeterminada. Su segunda opción está bien ... es una buena manera de hacer que los usuarios opten por correspondencia adicional. –
Sí, podría ser solo uno de varios métodos que el OP podría utilizar para determinar correos electrónicos obsoletos. Moví la opción n. ° 2 al n. ° 1 :) –
Creo que debe enviar los correos electrónicos para averiguarlo. Además, esto es más o menos lo que es un spammer, por lo tanto, es la razón por la que se pone en las listas de spammers. Sin embargo, enviar estallidos te ayudará a ocultar este hecho.
Se le pide al OP una forma sin enviar correos electrónicos. Esto es muy útil para verificar la existencia de un correo electrónico provisto por el visitante – SCC
Puede validar el correo electrónico a través de SMTP sin enviar un correo electrónico real.
http://code.google.com/p/php-smtp-email-validation/
También puede enviar mensajes de correo electrónico, y comprobar si hay rebotes.
https://github.com/kamilc/email_verifier es una rubygem que comprobará que existe el registro MX y que el servidor SMTP dice la dirección tiene un buzón de correo válida.
Puede usar un servicio pago como Kickbox para hacer esto también.
Puede considerar el servicio MailboxValidator http://www.mailboxvalidator.com/ que debería ser adecuado para sus necesidades. Puede obtener un plan masivo en el que puede cargar un archivo CSV que contenga su lista de correo electrónico u obtener el plan API si necesita integraciones programáticas.
- 1. ¿Cómo comprobar si una dirección de correo electrónico es falsa?
- 2. Identificar si una dirección de correo electrónico es 'pública'
- 3. CakePHP - ¿El método de utilidad para verificar una cadena es una dirección de correo electrónico válida?
- 4. ¿Expresión válida de la dirección de correo electrónico?
- 5. ¿Cómo verificar si existe una dirección de correo electrónico?
- 6. HgGit: "dirección de correo electrónico no válida" en GitHub
- 7. dirección de correo electrónico noreply.
- 8. Verificar que una dirección de correo electrónico sea válida como una cuenta de google
- 9. ¿Es una dirección de correo electrónico un URI?
- 10. compruebe que la dirección de correo electrónico es válida para System.Net.Mail.MailAddress
- 11. PHP buscar una cadena para una dirección de correo electrónico
- 12. Cómo verificar que realmente exista una dirección de correo electrónico enviando un correo electrónico a java
- 13. postfix: envíe una copia de cada correo electrónico a una dirección de correo electrónico dada
- 14. ¿Cómo puedo mayúsculas una dirección de correo electrónico?
- 15. ¿Cómo verifico si un valor de una cadena es una dirección IP
- 16. ¿Cuál es la dirección de correo electrónico más larga posible?
- 17. Es posible enviar un correo electrónico mediante programación sin utilizar ninguna cuenta de correo electrónico real
- 18. ¿Es seguro usar codificadores de correo electrónico? ¿O cómo es más seguro mostrar la dirección de correo electrónico?
- 19. ¿Puede haber un apóstrofo en una dirección de correo electrónico?
- 20. ¿Es 0.0.0.0 una dirección IP válida?
- 21. cómo verificar si realmente existe una dirección de correo electrónico dada en C#?
- 22. ¿Es una buena práctica de entrada de "Confirmar correo electrónico" cuando el usuario cambia la dirección de correo electrónico?
- 23. ¿Cómo verifico si una cadena es un MD5 válida o cadena
- 24. ¿Puedo verificar si existe una dirección de correo electrónico usando .net?
- 25. verificar una dirección de correo electrónico existen en C#
- 26. Configuración de una dirección de correo electrónico sin respuesta con Google Apps
- 27. validar la dirección de correo electrónico en UITextField en iPhone
- 28. Drupal recibe una dirección de correo electrónico amplia del sitio?
- 29. RoR delinear: sign_in siempre devuelve correo electrónico/contraseña no válida
- 30. Validación de correo electrónico TSQL (sin regex)
http://stackoverflow.com/search?q=validate+email –
@Brendan Long Parece que ya tienen un formato válido de mensajes de correo electrónico, y que él está tratando de verificar si la cuenta realmente existe. –
Oh. Olvidalo entonces. –