    Buscar correos en los buscadores :
    ----------------------------------

    Esta idea no es nueva, ya la uso el Mydoom y se les debe haber ocurrido a
    muchos de ustedes.

    Si entramos a algun buscador, y hacemos una busqueda de digamos :
     @hotmail.com  ,nuestro navegador se conecta al puerto 80 del buscador
    envia una solicitud HTTP Get ,y el buscador responde enviando los
    resultados de la busqueda.

    Ahora si nos fijamos en las urls que aparecen en el navegador, cuando
    accedemos a los resultados de la busqueda, podemos ver segun el navegador:

    Google:
    -------

    http://www.google.com/search?q=%40hotmail.com&hl=es&lr=&start=0&sa=N

    Analizando la sintaxis de la Url:

    http://www.google.com/search?q=palabra&hl=es&lr=&start=#&sa=N

    Yahoo:
    ------

    http://search.yahoo.com/search?p=%40hotmail.com&toggle=1&ei=UTF-8&fr=FP-tab-web-t&b=0

    Analizando la sintaxis de la Url:

    http://search.yahoo.com/search?p=palabra&toggle=1&ei=UTF-8&fr=FP-tab-web-t&b=#

    Altavista:
    ----------

    http://www.altavista.com/web/results?itag=ody&q=@hotmail.com&kgs=0&kls=0&stq=0

    Analizando la sintaxis de la Url:

    http://www.altavista.com/web/results?itag=ody&q=palabra&kgs=0&kls=0&stq=#

    Lycos:
    ------

    http://search.lycos.com/default.asp?query=%40hotmail%2Ecom&first=0&pmore=more

    Analizando la sintaxis de la Url:

    http://search.lycos.com/default.asp?query=palabra&first=#&pmore=more

    -----------------------------------------------------------
    Donde:

    palabra es la palabra o cadena que queremos buscar

    %40hotmail%2Ecom = @hotmail.com
     @ = %40 en Unicode
     . = %2E en Unicode

    # es el numero de resultado, para el buscador
    si ponemos 0 le estamos indicando que nos muestre del resultado 0 al 10
    si ponemos 10 le estamos indicando que nos muestre del resultado 10 al 20
    ( como muestran de 10 en 10 )

    Entonces ya conocemos la sintaxis de las url de busqueda que utilizan esos
    buscadores, podemos entrar al navegador y colocar alguna de esas urls
    y reemplazar palabra por lo que queramos y #
    por algun numero ( de preferencia multiplo de 10, en especial para google )
    y el buscador nos devolvera los resultados de la palabra indicados por el
    numero.

    Como nota, ninguno de los 4 buscadores me dejo acceder a resultados
    mayores al numero 1000, osea que # debe ser un multiplo de
    10 entre 0 y 990

    Ahora nuestro programa debe conectar al puerto 80 del buscador y enviar
    la url de busqueda, debe enviar una peticion HTTP Get como la envian los
    navegadores, porque si envia solo:  GET /<url> HTTP/1.0  no funka en
    algunos buscadores.

    Conectamos con alguno:

    Google => www.google.com           Yahoo => search.yahoo.com

    Altavista => www.altavista.com        Lycos => search.lycos.com

    Si conectamos por ejemplo con Google enviamos:

    GET /search?q=palabra&hl=es&lr=&start=#&sa=N  HTTP/1.0
    Accept: */*
    Accept-Language: es-pe
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
    Host: www.google.com:80

    Asegurense de no incluir la cabecera: Accept-Encoding: gzip ,para que no
    esten como yo, revisando como bruto 1 hora el code, porque los buscadores me
    enviaban "basura" en vez de los resultados, esa "basura" era la page
    que el buscador me enviada comprimida porque le indicaba en esa cabecera
    que aceptaba compresion gzip.

    Luego recibimos los resultados y de hay tenemos que extraer los correos,
    si hacemos una busqueda por @hotmail.com obtendremos tambien otros
    correos como @aol.com, @yahoo.com, etc, asi que si solo queremos
    los de hotmail para enviar por mx1.hotmail.com debemos separarlos

    Lo que me parece más recomendable seria encontrar un server smtp que
    permita relay (que no compruebe el dominio del destinatario, osea por
    ejemplo mx1.hotmail.com solo nos permite enviar mails a correos de dominio
    hotmail.com ,hay smtps que permiten enviar a cualquier dominio destinatario
    prueben el smtp con el mail from del dominio del server y el rcpt to de otro
    dominio, si les deja mandar el mail es relay); y hacer busquedas por
    @hotmail.com, @yahoo.com.mx, @terra.com.pe, etc y enviarnos a todos los
    mails que obtengamos.

    Muy posible que recibamos mails invalidos o mesclados con caracteres basura
    tenemos que obviar los invalidos y quitar la basura, por ejemplo:

    invalido: user@dominio   (no tiene punto)
    con basura: (user@dominio.com) ó "user@dominio.com" (quitamos los ( y ")

    Tambien tendremos que hacer reemplazos, algunas pages para evitar que los
    spammers capturen los correos, reemplazan la @ por (a) , (at) , [at]
    y el . por (.) , [.] ,entonces los volvemos a convertir a @ y .

    Aun despues de la seleccion es muy posible que se nos cuele un correo
    invalido, por lo que nuestro motor smtp debe estar preparado para
    manejar ciertos errores y de ser necesario volver a conectar

    Codigo de como buscar los mails en los buscadores en la carpeta [Ejemplos]
    El code esta en VB (el mydoom que lo hizo en C++, hay si debe ser dificil)

    (C) Mitosis 3 - GEDZAC LABS