Page 1 of 1

Dll para leer pop3 gmail

Posted: Sat Jun 06, 2015 4:40 am
by benjiben143
Hola buenas tardes

le anexo una dll para leer correos pop3
la saque de http://hpop.sourceforge.net/

lo pueden bajar en http://www.eleben.com.mx/gmail.zip

ejemplo de uso

Code: Select all

// Pruebas
// benjamin casarrubias moreno
// chino72vale@hotmail.com
// 05/06/2015
#include "FiveWin.ch"


static lsigue, nomdire, osrv, odlg, obenito, olbx


Function main()
LOCAL I, ncorreos
local n:=0, y
local cadjuntos:={}
local oeleben

set epoch to 1990
set century on
set date italian
set delete oN
sethandlecount(450)
set _3dlook on


/// leer correos de gmail

TRY
      oeleben := CreateObject( "ClassLibrary2.Class1" )
      
      ? "entro a leer correos de gmail "
CATCH
      ? "entro "
END

if oeleben:eleconecion("pop.gmail.com",995,.t.)    //pop, puerto, ssl= .t. o .f.
   ? "entro a la conexion "
else
   ? "no entro a la conexion no paso la prueba"
   return nil
endif

if oeleben:eleusuario("xxxx@gmail.com","xxxxx")     //usuarioa    contrase@a
   ? "entro a la autentificacion"
  
else
   ? "no entro a la autentificacion"
   return nil
endif
ncorreos:=oeleben:registros()
? "numero de correos ",ncorreos

for i:=1 to   ncorreos
     ? oeleben:headerfrom(i)
     ? oeleben:headerdate(i)
     ? oeleben:headersubject(i)
     ? oeleben:headertextversion(i)
     ? oeleben:headerhtmlversion(i)
     cadjuntos:=obtadjuntos(oeleben:headeradjuntos(i))
     ? " adjuntos ", oeleben:headeradjuntos(i)
     ? "numero de adjuntos", len(cadjuntos)
     
     for n:=1 to len(cadjuntos)   // imprimir nombre de adjuntos  y se graba en el directorio dode corre el programa
         ? cadjuntos[n], n
     next n
next i

? "desconexion",oeleben:desconectar()

? "termino we"

Return NIl



function obtadjuntos(xnombres)
local adev:={}
local dev:=""
local i:=0
for i:=1 to len(xnombres)
   if substr(xnombres,i,1)="|"
      aadd(adev,dev)
      dev:=""
   else
      dev:=dev+substr(xnombres,i,1)
   endif
next i
return adev


 
hay que registrar la dll ClassLibrary2.dll
con r.bat

Re: Dll para leer pop3 gmail

Posted: Sat Jun 06, 2015 9:54 am
by Antonio Linares
Gracias! :-)

Re: Dll para leer pop3 gmail

Posted: Fri Jul 17, 2015 8:12 am
by Antonio Linares
Lo he probado y no me funciona.

Alguien tiene código que funcione para leer los correos de gmail ?

gracias!

Re: Dll para leer pop3 gmail

Posted: Fri Jul 17, 2015 2:54 pm
by Antonio Linares

Re: Dll para leer pop3 gmail

Posted: Fri Jul 17, 2015 4:55 pm
by benjiben143
hola buenos dias antonio

la dll funciona perfectamente

hay que darle permiso a la cuenta de gmail
habilitando pop en configuracion y reeinvio y correo pop/imap

tambien ay que checar si el antivirus esta bloqueando el servicio


saludos

Re: Dll para leer pop3 gmail

Posted: Fri Jul 17, 2015 5:03 pm
by benjiben143
hola

le anexe una prueba se llama visorxml.exe

ay le pueden mandar mensajes a la cuenta de eleben143@gmail.com

y los recibe

http://www.eleben.com.mx/gmail.zip

saludos

nota: hay que registrar la dll

Re: Dll para leer pop3 gmail

Posted: Fri Jul 17, 2015 11:12 pm
by ruben Dario
Saludos

RegAsm.exe Que hace este Exe,

Ejecuto visorxml.exe y sale este mensaje "no Entro puto"

Re: Dll para leer pop3 gmail

Posted: Sat Jul 18, 2015 1:56 pm
by benjiben143
hola buenos dias

ese registra la dll
para poder usarla

saludos

Re: Dll para leer pop3 gmail

Posted: Mon Jul 20, 2015 9:56 am
by Antonio Linares
Ojo que no conocemos el contenido de estas DLLs y alguien podría estar obteniendo nuestras contraseñas.

Los que hayais probado este código, lo idóneo es que cambieis vuestras contraseñas.

Re: Dll para leer pop3 gmail

Posted: Mon Jul 20, 2015 3:18 pm
by benjiben143
hola buenos dias
la dll la ralize yo en c#,
porque en c# ,, porque de una manera facil se pueden llamar todos los metodos y propiedades de cualquier dll
anexo el codigo de la libreria en c# , (tambien la podemos hacer lib de fivewin )

asi mismo veran que es muy facil es realizar cualquier llamado a dll
y cualquier persona que me lo pida le puedo dar todo el proyecto sin ningun problema y con toda la confianza del mundo bajando el visual estudio 2010 o 2013 express
ustedes mismo lo pueden compilar y genrerar su propia dll y llamarla asi desde fivewin sin ningun problema

saludos


Code: Select all


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Xml;
using System.IO;
using System.Reflection;

// agregado de la securyty   
using System.Security.Cryptography;
using System.Security.Cryptography.Xml;
using System.Security.Permissions;
using System.Security.Cryptography.X509Certificates;


using System.ComponentModel;
using System.Data;
using System.Threading.Tasks;
using OpenPop.Mime;
using OpenPop.Mime.Header;
using OpenPop.Pop3;
using OpenPop.Pop3.Exceptions;
using OpenPop.Common.Logging;
using EmailMessage = OpenPop.Mime.Message;


//{DC5A21DC-5D65-4EBA-A75C-08EA7DF16DB8}

namespace ClassLibrary2

{
    [ComVisibleAttribute(true)]  //Deja la clase visible para COM
    [Guid("DC5A21DC-5D65-4EBA-A75C-08EA7DF16DB8")]
    [ProgId("ClassLibrary2.Class1")] //Identificador para poder Acceder a esta clase desde el exterior 


    public class Class1
    {
          Pop3Client client = new Pop3Client();
          private IContainer components;
      //    private SaveFileDialog saveFile;
        

        List<OpenPop.Mime.MessagePart> adjuntos;

        public string CERTIFICADO  {get; set;}
        public String USUARIO      {get; set;}
        public String LLAVE        {get; set;}
        public String SUBJECT      {get; set;}
        public String ISSUER       {get; set;}
        public int    VERSION      {get; set;}
        public int    llave        {get; set;}
        public DateTime VALIDDATE  {get; set;}
        public DateTime EXPIRYDATE {get; set;}
        public String THUMBPRINT   {get; set;}
        public String SERIAL       {get; set;}
        public String FRIENDLYNAME {get; set;}
        public String PUBLICKEY    {get; set;}
        public String PRIVATEKEY   {get; set;}
        public String RAWDATA      {get; set;}
        public String CERSTRING    {get; set;}
        public String CERXMLSTRING {get; set;}
        public String TIPOERROR    {get; set;}
        public String FILE         {get; set;}
        public String cdevuelve    {get; set;}
        public String RUTAD        {get; set;}

        internal  static byte[] ReadFile(string fileName)
        {
            FileStream f = new FileStream(fileName, FileMode.Open, FileAccess.Read);
            int size = (int)f.Length;
            byte[] data = new byte[size];
            
            size = f.Read(data, 0, size);
            f.Close();
            return data;
        }

        public string holita(string queondas)
        {
            Console.WriteLine("aaaaaaaaa"+queondas);
            Console.ReadLine();
            return "aaa";
        }


        public bool eleconecion (string direcion, int puerto, bool lssl)
        {
            bool dev = false;
            try
            {
                client.Connect(direcion, puerto, lssl); // si es ssl o no es ssl


                dev = true;
            }

            catch (Exception e)
            {
                dev = false;
            }
            
            return dev;

        }

        public bool eleusuario (string usuario, string contra)
        {
            bool dev = false;

        try
        
           {
               client.Authenticate(usuario, contra);
               dev = true ; 

               
            }
            catch (Exception)
            {
               dev = false;
           
             }

        return dev;
        }

        public int registros()
        {
            int dev = 0;

            try
            {
                dev = client.GetMessageCount();

            }
            catch (Exception)
            {
                dev = 0;

            }

            return dev;
        }

        public bool desconectar()
        {
            bool dev = false;

            try
            {
                client.Disconnect();
                dev = true;
            }
            catch (Exception)
            {
                dev = false;

            }
            return dev;
        }


        public string headerfrom (int men)
        {
           string dev ="";

           try 
            {           
            
               string adev = client.GetMessage(men).Headers.From.ToString();

               dev = adev;
             }
            catch (Exception)
            {
        
               dev = "";
            }

            return dev;
        }

        public string headerdate(int men)
        {
            string dev = "";

            try
            {

                string adev = client.GetMessage(men).Headers.Date.ToString();

                dev = adev;
            }
            catch (Exception)
            {

                dev = "";
            }

            return dev;
        }


        public string headersubject(int men)
        {
            string dev = "";

            try
            {

                string adev = client.GetMessage(men).Headers.Subject.ToString();

                dev = adev;
            }
            catch (Exception)
            {

                dev = "";
            }

            return dev;
        }

        public string headertextversion(int men)
        {
            string dev = "";

            try
            {

                string adev = client.GetMessage(men).FindFirstPlainTextVersion().GetBodyAsText();

                dev = adev;
            }
            catch (Exception)
            {

                dev = "";
            }

            return dev;
        }

        public string headerhtmlversion(int men)
        {
            string dev = "";

            try
            {

                string adev = client.GetMessage(men).FindFirstHtmlVersion().GetBodyAsText();


                dev = adev;
            }
            catch (Exception)
            {

                dev = "";
            }

            return dev;
        }


        public string headeradjuntos(int men)
        {
            string dev = "";

            try
            {
                string adev = client.GetMessage(men).FindFirstHtmlVersion().GetBodyAsText();
                adev = client.GetMessage(men).FindAllAttachments().ToString();

                EmailMessage message = client.GetMessage(men);  // es el valor de un mensaqje we
                List<MessagePart> adjuntos = message.FindAllAttachments();
                foreach ( MessagePart adjunto in adjuntos)
                {
                    dev = dev +adjunto.FileName+"|";
                    FileInfo file = new FileInfo(adjunto.FileName);
                    if (file.Exists)
                    {
                        // User was asked when he chose the file, if he wanted to overwrite it
                        // Therefore, when we get to here, it is okay to delete the file
                     //   dev = dev + "si existes el archivo y se borro" + "|";
                        file.Delete();
                    }

                    // Lets try to save to the file
                    try
                    {
                        adjunto.Save(file);
                       // dev = dev + "se grabo el archivo wey" + "|";
                       // MessageBox.Show(this, "Attachment saved successfully");
                    }
                    catch (Exception )
                    {
                     //   MessageBox.Show(this, "Attachment saving failed. Exception message: " + e.Message);
                        dev = dev + "marco error en grabdo de datos we" + "|";

                     //   return dev;
                    }
                }
                

                
               // crear lista de los adjuntos putos
               
                
            }
            catch (Exception)
            {
                dev = "";
            }
            return dev;
        }


           

        public string LEERCERTIFICADO (string xcertificado)
       
           {

            try
            {
               
                X509Certificate2 x509 = new X509Certificate2();
                //Create X509Certificate2 object from .cer file. 
                //byte[] rawData = ReadFile(args[0]);
                byte[] rawData = ReadFile(xcertificado);
                
                x509.Import(rawData);
                
                SUBJECT = x509.Subject;
                ISSUER = x509.Issuer;
                VERSION = x509.Version;
                VALIDDATE = x509.NotBefore;
                EXPIRYDATE = x509.NotAfter;
                THUMBPRINT = x509.Thumbprint;
                SERIAL = x509.SerialNumber;
                FRIENDLYNAME = x509.FriendlyName;

                PUBLICKEY = x509.PublicKey.ToString();
                PRIVATEKEY = x509.PrivateKey.ToString();
                RAWDATA = x509.RawData.ToString();
               
                CERSTRING = x509.ToString(true);
               

                CERXMLSTRING = x509.PublicKey.Key.ToXmlString(false);

                //Add the certificate to a X509Store.
                X509Store store = new X509Store();
                store.Open(OpenFlags.MaxAllowed);
                store.Add(x509);
                store.Close();
            }

            catch (DirectoryNotFoundException)
            {
               TIPOERROR ="Error The directory specified could not be found";
            }
            catch (IOException)
            {
                TIPOERROR = "Error A file in the directory could not be accessed.";
            }
            catch (NullReferenceException)
            {
                TIPOERROR = "File must be a .cer file. Program does not have access to that type of file.";
            }

            return "aaaa";
        }



        public string xfile( string cruta )
            

        {
            byte[] pele = File.ReadAllBytes(@cruta);
            string result = System.Text.Encoding.ASCII.GetString(pele);
            // convertir a base 64
            string base64String;
            try
            {
                base64String =
                  System.Convert.ToBase64String(pele,
                                         0,
                                         pele.Length);
            }
            catch (System.ArgumentNullException)
            {
               // System.Console.WriteLine("Binary data array is null.");
                return "error Binary data array is Null";
            }

            return base64String;
        }
        
        
        }
        
 

Re: Dll para leer pop3 gmail

Posted: Mon Jul 20, 2015 3:46 pm
by Antonio Linares
Gracias por publicar el código, asi se despeja cualquier duda al respecto.

Te pido disculpas si te ha podido molestar mi mensaje. Sólo lo he hecho por seguridad de todos
pues alguna de las DLLs usada talvez no es tuya y no se sabe con certeza que puedan hacer
con los datos proporcionados.

Re: Dll para leer pop3 gmail

Posted: Mon Jul 20, 2015 3:56 pm
by benjiben143
hola antonio

buenos dia

la dll
la saque de http://hpop.sourceforge.net/

ayi tambien viene su codigo fuente y pruebas

yo lo unico que hice fueron los llamados

y asi como tu dice , tenemos que probarla , yo de antemano ya tengo tiempo usandola y a todo dar

saludos