Otras respuestas aquí discuten los diversos problemas al tratar de hacer esto. Pensé en mostrarte cómo podrías intentar esto en caso de que quisieras aprender haciéndolo tú mismo.
Puede conectarse a un servidor de correo a través de telnet para preguntar si existe una dirección de correo electrónico. Aquí hay un ejemplo de prueba de una dirección de correo electrónico para stackoverflow.com
:
C: \> nslookup -q = mx stackoverflow.com
Respuesta no autorizada:
stackoverflow.com Preferencia MX = 40, intercambiador de correo = STACKOVERFLOW.COM.S9B2.PSMTP.com
stackoverflow.com Preferencia MX = 10, intercambiador de correo = STACKOVERFLOW.COM.S9A1.PSMTP.com
stackoverflow.com Preferencia MX = 20, intercambiador de correo = STACKOVERFLOW.COM.S9A2.PSMTP.com
stackoverflow.com Preferencia MX = 30, intercambiador de correo = STACKOVERFLOW.COM.S9B1.PSMTP.com
C: \> telnet STACKOVERFLOW.COM.S9A1.PSMTP.com 25
220 Postini ESMTP 213 y6_35_0c4 listo. La Sección 17538.45 del Código de Negocios y Profesiones de CA prohíbe el uso de este sistema para anuncios de correo electrónico no solicitados.
hola hola
250 Postini dice hola de vuelta
correo de: <me@myhost.com>
250 ok
rcpt a: <fake@stackoverflow.com>
550-5.1.1 La cuenta de correo electrónico que intentó alcanzar no existe. Por favor, inténtalo
550-5.1.1 verificar la dirección de correo electrónico del destinatario para ver si hay errores tipográficos o
550-5.1.1 espacios innecesarios. Obtenga más información en
550 5.1.1 http://mail.google.com/support/bin/answer.py?answer=6596 w41si3198459wfd.71
Las líneas con prefijos de códigos numéricos son respuestas del servidor SMTP. Agregué algunas líneas en blanco para que sea más legible.
Muchos servidores de correo no devolverán esta información como un medio para evitar que los spammers recopilen direcciones de correo electrónico, por lo que no puede confiar en esta técnica. Sin embargo, puede tener cierto éxito en la limpieza de algunas direcciones de correo electrónico evidentemente malas al detectar servidores de correo no válidos o al rechazar las direcciones de los destinatarios como se indicó anteriormente.
Tenga en cuenta también que los servidores de correo pueden ponerlo en la lista negra si les hace demasiadas solicitudes.
En PHP, creo que puede usar fsockopen
, fwrite
y fread
para realizar los pasos anteriores mediante programación:
$smtp_server = fsockopen("STACKOVERFLOW.COM.S9A1.PSMTP.com", 25, $errno, $errstr, 30);
fwrite($smtp_server, "helo hi\r\n");
fwrite($smtp_server, "mail from: <me@myhost.com>\r\n");
fwrite($smtp_server, "rcpt to: <fake@stackoverflow.com>\r\n");