示例#1
0
        private void btnStart_Click(object sender, EventArgs e)
        {
            try
            {
                string mensajError = "";

                NumeroPaginas = Bus_Mensaje.ObtenerNumPag(uC_Botones_Paginas1.Total_Registros_x_pagina, eTipoMail.Buzon_Ent, InfoCuenta.direccion_correo, uC_Botones_Paginas1.Cadena_Busqueda, ref mensajError);

                if (InfoCuenta == null)
                {
                    mail_Cuentas_Correo_Bus         bus_correo   = new mail_Cuentas_Correo_Bus();
                    List <mail_Cuentas_Correo_Info> lista_Correo = new List <mail_Cuentas_Correo_Info>();
                    lista_Correo = bus_correo.consultar(ref mensajError);
                    InfoCuenta   = lista_Correo.FirstOrDefault(q => q.direccion_correo == dir_correo);
                }

                if (InfoCuenta.ServidorCorreoEntrante.Length == 0 || InfoCuenta.Usuario.Length == 0 || InfoCuenta.Password.Length == 0)
                {
                    MessageBox.Show("Por favor ingrese servidor, usuario y contraseña.");
                    return;
                }



                Buzon_Entrada_Descarga(InfoCuenta);


                mostrar_mensajes(eTipoMail.Buzon_Ent, uC_Botones_Paginas1.IndicePagina, dir_correo);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
                BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString());
            }
        }
示例#2
0
        public void mostrar_mensajes(eTipoMail TipoMail, int NumPag, string direccionCorreo)
        {
            try
            {
                string msg = "";
                toolStripLabel1.Text = "Mail: " + direccionCorreo;
                dir_correo           = direccionCorreo;
                if (InfoCuenta.IdCuenta == null)
                {
                    mail_Cuentas_Correo_Bus         bus_correo   = new mail_Cuentas_Correo_Bus();
                    List <mail_Cuentas_Correo_Info> lista_Correo = new List <mail_Cuentas_Correo_Info>();

                    lista_Correo = bus_correo.consultar(ref msg);
                    InfoCuenta   = lista_Correo.FirstOrDefault(q => q.direccion_correo == dir_correo);
                }
                usa_sll       = Convert.ToBoolean((InfoCuenta.Usa_SSL_Conexion_para_Descarga_correo == null) ? true :(Boolean)InfoCuenta.Usa_SSL_Conexion_para_Descarga_correo);
                guardar_copia = Convert.ToBoolean((InfoCuenta.Guardar_1_copia_de_corre_en_server_mail == null) ? true : (Boolean)InfoCuenta.Guardar_1_copia_de_corre_en_server_mail);

                lista_Mensaje = new List <mail_Mensaje_Info>(Bus_Mensaje.consultar(TipoMail, direccionCorreo, NumPag, uC_Botones_Paginas1.Total_Registros_x_pagina, (uC_Botones_Paginas1.Cadena_Busqueda == null ? "" : uC_Botones_Paginas1.Cadena_Busqueda), ref msg));

                NumeroPaginas = Bus_Mensaje.ObtenerNumPag(uC_Botones_Paginas1.Total_Registros_x_pagina, TipoMail, dir_correo, (uC_Botones_Paginas1.Cadena_Busqueda == null) ? "" : uC_Botones_Paginas1.Cadena_Busqueda, ref msg);
                uC_Botones_Paginas1.NumeroPaginas = NumeroPaginas;
                gridControlVisor_Mail_Buzon_Entrada.DataSource = lista_Mensaje;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
                BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString());
            }
        }
示例#3
0
        private void UC_Mail_Buzon_Entrada_Load(object sender, EventArgs e)
        {
            try
            {
                try
                {
                    string mensajError = "";


                    object empty = System.Reflection.Missing.Value;
                    webMail.Navigate("about:blank");

                    string RutaFile = Path.GetTempPath();
                    int    pos      = RutaFile.LastIndexOf('\\');
                    if (pos != -1)
                    {
                        RutaFile = RutaFile.Substring(0, pos);
                    }

                    m_curpath = RutaFile;

                    mail_Cuentas_Correo_Bus         bus_correo   = new mail_Cuentas_Correo_Bus();
                    List <mail_Cuentas_Correo_Info> lista_Correo = new List <mail_Cuentas_Correo_Info>();

                    lista_Correo = bus_correo.consultar(ref mensajError);
                    InfoCuenta   = lista_Correo.FirstOrDefault();

                    //mostrar_mensajes(eTipoMail.Buzon_Ent, 1, InfoCuenta.direccion_correo);
                }
                catch (Exception ex)
                {
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
                BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString());
            }
        }
        private void descargar_correo_buzon_entrada()
        {
            try
            {
                string mensajError = "";
                mail_Cuentas_Correo_Bus         bus_correo   = new mail_Cuentas_Correo_Bus();
                List <mail_Cuentas_Correo_Info> lista_Correo = new List <mail_Cuentas_Correo_Info>();
                UC_Mail_Buzon_Entrada           UC_Buz_Ent   = new UC_Mail_Buzon_Entrada();
                lista_Correo = bus_correo.consultar(ref mensajError);

                foreach (var item in lista_Correo)
                {
                    mail_Cuentas_Correo_Info Info_Buz_Ent = new mail_Cuentas_Correo_Info();
                    Info_Buz_Ent = item;
                    UC_Buz_Ent.Buzon_Entrada_Descarga(Info_Buz_Ent);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
                BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString());
            }
        }
示例#5
0
        private void btndescargarcorreo_Click(object sender, EventArgs e)
        {
            try
            {
                string mensajError = "";
                if (InfoCuenta == null)
                {
                    mail_Cuentas_Correo_Bus         bus_correo   = new mail_Cuentas_Correo_Bus();
                    List <mail_Cuentas_Correo_Info> lista_Correo = new List <mail_Cuentas_Correo_Info>();
                    lista_Correo = bus_correo.consultar(ref mensajError);
                    InfoCuenta   = lista_Correo.FirstOrDefault(q => q.direccion_correo == dir_correo);
                }

                if (InfoCuenta.ServidorCorreoEntrante.Length == 0 || InfoCuenta.Usuario.Length == 0 || InfoCuenta.Password.Length == 0)
                {
                    MessageBox.Show("Por favor ingrese servidor, usuario y contraseña.");
                    return;
                }
                // cargo los ID de mensaje para no tener q ir a la DB
                lista_codMensajeId_Existentes = new List <string>();
                lista_codMensajeId_Existentes = Bus_Mensaje.consultar_CodMail_Existentes();
                btndescargarcorreo.Enabled    = false;
                btnCancel.Enabled             = true;
                lista_Mensaje = new List <mail_Mensaje_Info>();
                string mensajeError = "";

                ServerAuthType authType = ServerAuthType.AuthLogin;

                if (InfoCuenta.Tipo_Authenticacion == "APOP")
                {
                    authType = ServerAuthType.AuthCRAM5;
                }
                else if (InfoCuenta.Tipo_Authenticacion == "NTLM")
                {
                    authType = ServerAuthType.AuthNTLM;
                }
                // ServerProtocol protocol = (ServerProtocol)lstProtocol.SelectedIndex;
                ServerProtocol protocol = new ServerProtocol();
                if (InfoCuenta.TipoCuenta == "POP3")
                {
                    protocol = ServerProtocol.Pop3;
                }
                if (InfoCuenta.TipoCuenta == "IMAP4")
                {
                    protocol = ServerProtocol.Imap4;
                }
                if (InfoCuenta.TipoCuenta == "EXCHA_WEB_SER")
                {
                    protocol = ServerProtocol.ExchangeEWS;
                }
                if (InfoCuenta.TipoCuenta == "EXCHA_WEB_DAV")
                {
                    protocol = ServerProtocol.ExchangeWebDAV;
                }


                usa_sll = (InfoCuenta.Usa_SSL_Conexion_para_Descarga_correo == null) ? false : (Boolean)InfoCuenta.Usa_SSL_Conexion_para_Descarga_correo;

                MailServer oServer = new MailServer(InfoCuenta.ServidorCorreoEntrante, InfoCuenta.Usuario, InfoCuenta.Password,
                                                    usa_sll, authType, protocol);



                // Para el uso de la evaluación, por favor utilice "TryIt" como el código de licencia, de lo contrario el
                // será lanzado  excepción "código de licencia no válida". Sin embargo, el objeto expirará en 1-2 meses, y luego
                // "versión de prueba expiró" se lanzará una excepción.

                MailClient oClient = new MailClient("EG-B1374632949-00215-D3BEB6416TE2E729-A84ADDF9C5A1C85F");

                //Catching the following events is not necessary,
                //just make the application more user friendly.
                //If you use the object in asp.net/windows service or non-gui application,
                //You need not to catch the following events.
                //To learn more detail, please refer to the code in EAGetMail EventHandler region

                oClient.OnAuthorized          += new MailClient.OnAuthorizedEventHandler(OnAuthorized);
                oClient.OnConnected           += new MailClient.OnConnectedEventHandler(OnConnected);
                oClient.OnIdle                += new MailClient.OnIdleEventHandler(OnIdle);
                oClient.OnSecuring            += new MailClient.OnSecuringEventHandler(OnSecuring);
                oClient.OnReceivingDataStream += new MailClient.OnReceivingDataStreamEventHandler(OnReceivingDataStream);

                bool bMantener_copia_correo = (InfoCuenta.Guardar_1_copia_de_corre_en_server_mail == null) ? false : (Boolean)InfoCuenta.Guardar_1_copia_de_corre_en_server_mail;

                UIDLManager oUIDLManager = new UIDLManager();

                try
                {
                    // Carga existían registros UIDL a UIDLManager
                    string uidlfile = String.Format("{0}\\{1}", m_curpath, m_uidlfile);
                    oUIDLManager.Load(uidlfile);

                    string mailFolder = String.Format("{0}\\inbox", m_curpath);
                    if (!Directory.Exists(mailFolder))
                    {
                        Directory.CreateDirectory(mailFolder);
                    }

                    m_bcancel      = false;
                    lblStatus.Text = "Conectando ...";
                    oClient.Connect(oServer);
                    MailInfo[] infos = oClient.GetMailInfos();
                    lblStatus.Text = String.Format("Total {0} email(s)", infos.Length);

                    // Eliminar el uidl local que no se existía en el servidor.
                    oUIDLManager.SyncUIDL(oServer, infos);
                    oUIDLManager.Update();

                    int count = infos.Length;

                    if (count > 0)
                    {
                        lista_Mensaje = new List <mail_Mensaje_Info>();
                    }

                    int CountError = 0;

                    for (int i = 0; i < count; i++)
                    {
                        MailInfo info = infos[i];
                        CountError = i;
                        //if (i == 2587) { MessageBox.Show(""); }


                        //verificar en base NO debo ir a la base uno a uno sino se hace muy largo
                        if (lista_codMensajeId_Existentes.Contains(info.UIDL) == false)
                        {
                            lblStatus.Text = String.Format("Retrieving {0}/{1}...", info.Index, count);
                            Mail            oMail = oClient.GetMail(info);
                            System.DateTime d     = System.DateTime.Now;
                            System.Globalization.CultureInfo cur = new System.Globalization.CultureInfo("en-US");
                            string sdate    = d.ToString("yyyyMMddHHmmss", cur);
                            string fileName = String.Format("{0}\\{1}{2}{3}.eml", mailFolder, sdate, d.Millisecond.ToString("d3"), i);


                            try//try1
                            {
                                oMail.SaveAs(fileName, true);

                                conta = 0;
                                conta = oMail.To.ToList().Count();
                                sec   = 0;
                                foreach (var itemTo in oMail.To.ToList())
                                {
                                    sec = sec + 1;
                                    if (sec != conta)
                                    {
                                        para += itemTo.Address + "; ";
                                    }
                                    else
                                    {
                                        para += itemTo.Address;
                                    }
                                }

                                conta = 0;
                                conta = oMail.Cc.ToList().Count();
                                sec   = 0;
                                foreach (var itemCopia in oMail.Cc.ToList())
                                {
                                    sec = sec + 1;
                                    if (sec != conta)
                                    {
                                        CC += itemCopia.Address + "; ";
                                    }
                                    else
                                    {
                                        CC += itemCopia.Address;
                                    }
                                }
                            }
                            catch (Exception EX)
                            {
                                MessageBox.Show(EX.Message + " try 1");
                            }


                            try//try2
                            {
                                infoMensaje        = new mail_Mensaje_Info();
                                infoMensaje.Asunto = oMail.Subject;
                                infoMensaje.Asunto_texto_mostrado = oMail.Subject;
                                // infoMensaje.codMensajeId = MessageID;
                                infoMensaje.codMensajeId = info.UIDL;

                                infoMensaje.fileName      = fileName;
                                infoMensaje.Para          = para;
                                infoMensaje.Para_CC       = CC;
                                infoMensaje.Fecha         = oMail.ReceivedDate;
                                infoMensaje.Texto_mensaje = oMail.TextBody;

                                infoMensaje.Tiene_Adjunto = oMail.Attachments.Count() == 0 ? false : true;

                                if (Convert.ToString(oMail.Priority) == "Normal")
                                {
                                    infoMensaje.Prioridad = 0;
                                }
                                if (Convert.ToString(oMail.Priority) == "Alta")
                                {
                                    infoMensaje.Prioridad = 1;
                                }
                                if (Convert.ToString(oMail.Priority) == "Baja")
                                {
                                    infoMensaje.Prioridad = -1;
                                }

                                infoMensaje.Leido      = false;
                                infoMensaje.Respondido = false;
                                infoMensaje.No_Leido   = false;

                                infoMensaje.mail_remitente = dir_correo;
                                infoMensaje.Eliminado      = false;
                                infoMensaje.IdTipo_Mensaje = eTipoMail.Buzon_Ent;


                                infoMensaje.IdCuenta = IdCuenta;

                                foreach (var itemAdju in oMail.Attachments)
                                {
                                    mail_Mensaje_Archi_Adjunto_Info infoAdju = new mail_Mensaje_Archi_Adjunto_Info();

                                    string nomAdju = itemAdju.Name;

                                    string extAdj = Path.GetExtension(nomAdju);
                                    if (extAdj.ToUpper() == ".PDF" || extAdj.ToUpper() == ".XML")
                                    {
                                        infoAdju.extensionArchivo  = extAdj;
                                        infoAdju.Archivo_adjunto   = itemAdju.Content;
                                        infoAdju.descripcion_archi = itemAdju.Name;

                                        infoMensaje.list_Archivos_Adjuntos.Add(infoAdju);
                                    }
                                }

                                infoMensaje.Archivo_correo = System.IO.File.ReadAllBytes(infoMensaje.fileName);


                                Bus_Mensaje.GrabarMensajeDB(infoMensaje, ref mensajeError);
                                //lista_Mensaje.Add(infoMensaje);
                            }
                            catch (Exception ex)
                            {
                                MessageBox.Show(ex.Message + " try 2");
                            }


                            oMail.Clear();

                            // si lblTotal.Text = String.Format("Total {0} email(s)", lstMail.Items.Count);

                            if (bMantener_copia_correo)
                            {
                                // añadir el uidl correo electrónico a uidl archivo para evitar recuperamos la próxima vez.
                                oUIDLManager.AddUIDL(oServer, info.UIDL, fileName);
                            }
                        }
                    }

                    if (!bMantener_copia_correo)
                    {
                        lblStatus.Text = "Borrando ...";
                        for (int i = 0; i < count; i++)
                        {
                            oClient.Delete(infos[i]);
                            // Eliminar UIDL de archivo uidl local.
                            oUIDLManager.RemoveUIDL(oServer, infos[i].UIDL);
                        }
                    }
                    // Eliminar método sólo marcar el correo electrónico como eliminado,
                    // Salir método puro los mensajes de correo electrónico desde el servidor exactamente.
                    oClient.Quit();

                    //if (lista_Mensaje.Count() == 0)
                    //{
                    //    MessageBox.Show("No existen Correos de Entrada Nuevos");
                    //    btndescargarcorreo.Enabled = true;
                    //    btnCancel.Enabled = false;
                    //    return;
                    //}
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message.ToString());
                    BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString());
                }

                // Actualizar la lista uidl de archivo uidl local y luego podemos cargar la próxima vez.
                oUIDLManager.Update();

                lblStatus.Text             = "Completed";
                pgBar.Maximum              = 100;
                pgBar.Minimum              = 0;
                pgBar.Value                = 0;
                btndescargarcorreo.Enabled = true;
                btnCancel.Enabled          = false;


                //mostrar_mensajes(eTipoMail.Buzon_Ent, dtp_desde.Value, dtp_hasta.Value, dir_correo);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
                BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString());
            }
        }
示例#6
0
        void cargar_Correo_Entrada()
        {
            try
            {
                try
                {
                    string mensajError = "";
                    mail_Cuentas_Correo_Bus         bus_correo   = new mail_Cuentas_Correo_Bus();
                    List <mail_Cuentas_Correo_Info> lista_Correo = new List <mail_Cuentas_Correo_Info>();

                    lista_Correo = bus_correo.consultar(ref mensajError);

                    var itemCuenta = lista_Correo.FirstOrDefault(q => q.direccion_correo == correo);

                    IdCuenta = itemCuenta.IdCuenta;

                    Pop3Client pop3Client;

                    pop3Client = new Pop3Client();
                    pop3Client.Connect(itemCuenta.ServidorCorreoEntrante, itemCuenta.port_entrada, true);
                    pop3Client.Authenticate(itemCuenta.direccion_correo, itemCuenta.Password);


                    int count = pop3Client.GetMessageCount();
                    // int counter = 0;
                    for (int i = count; i >= 1; i -= 1)
                    {
                        string MessageId = pop3Client.GetMessageHeaders(i).MessageId;

                        if (Bus_Mensaje.Verifica_codMensajeId(MessageId) == false)
                        {
                            var itemIdMensaje = listaMensajes.FirstOrDefault(q => q.codMensajeId == MessageId);

                            if (itemIdMensaje == null)
                            {
                                OpenPop.Mime.Message message = pop3Client.GetMessage(i);

                                //Para
                                listPara = new List <string>();
                                foreach (var item in message.Headers.To.ToList())
                                {
                                    listPara.Add(item.Address);
                                }

                                //con copia
                                list_concopia = new List <string>();
                                foreach (var item in message.Headers.Cc.ToList())
                                {
                                    list_concopia.Add(item.Address);
                                }

                                //texto mensaje
                                selectedMessagePart = message.FindFirstPlainTextVersion();

                                if (selectedMessagePart != null)
                                {
                                    if (selectedMessagePart.IsText)
                                    {
                                        valida = selectedMessagePart.GetBodyAsText();
                                    }
                                }

                                Email email = new Email()
                                {
                                    MessageNumber = i,
                                    Subject       = message.Headers.Subject,
                                    DateSent      = message.Headers.DateSent,
                                    Prioridad     = Convert.ToString(message.Headers.Importance),
                                    //  From = string.Format("<a href = 'mailto:{1}'>{0}</a>", message.Headers.From.DisplayName, message.Headers.From.Address),
                                    //  From =  message.Headers.From.DisplayName,
                                    MessageId     = message.Headers.MessageId,
                                    Para          = para,
                                    Texto_mensaje = valida,
                                    CC            = CC,
                                    To            = listPara,
                                    conCopia      = list_concopia
                                };

                                List <MessagePart> attachments = message.FindAllAttachments();

                                foreach (MessagePart attachment in attachments)
                                {
                                    email.Attachments.Add(new Attachment
                                    {
                                        FileName    = attachment.FileName,
                                        ContentType = attachment.ContentType.MediaType,
                                        Content     = attachment.Body
                                    });
                                }

                                listaMail.Add(email);
                            }
                        }
                    }

                    if (listaMail.Count() == 0)
                    {
                        MessageBox.Show("No existen Correos de Entrada Nuevos");
                        return;
                    }
                    // gridControl2.DataSource = listaMail1;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
示例#7
0
        private void Frm_Correo_POP_IMAP_Load(object sender, EventArgs e)
        {
            try
            {
                // correo = "*****@*****.**";
                //  correo = "*****@*****.**";
                correo = "*****@*****.**";

                string mensajError = "";
                mail_Cuentas_Correo_Bus         bus_correo   = new mail_Cuentas_Correo_Bus();
                List <mail_Cuentas_Correo_Info> lista_Correo = new List <mail_Cuentas_Correo_Info>();

                lista_Correo = bus_correo.consultar(ref mensajError);

                var itemCuenta = lista_Correo.FirstOrDefault(q => q.direccion_correo == correo);

                if (itemCuenta != null)
                {
                    IdCuenta = itemCuenta.IdCuenta;
                }

                object empty = System.Reflection.Missing.Value;
                webMail.Navigate("about:blank");

                // carga combos

                lstProtocol.Items.Add("POP3");
                lstProtocol.Items.Add("IMAP4");
                lstProtocol.Items.Add("Exchange Web Service - 2007/2010");
                lstProtocol.Items.Add("Exchange WebDAV - Exchange 2000/2003");

                lstProtocol.SelectedIndex = 0;

                lstAuthType.Items.Add("USER/LOGIN");
                lstAuthType.Items.Add("APOP");
                lstAuthType.Items.Add("NTLM");
                lstAuthType.SelectedIndex = 0;


                string RutaFile = Path.GetTempPath();
                int    pos      = RutaFile.LastIndexOf('\\');
                if (pos != -1)
                {
                    RutaFile = RutaFile.Substring(0, pos);
                }

                m_curpath = RutaFile;

                // LoadMails();


                //consulta de la base de datos


                ////Consulta archivos adjuntos
                string mensajeError = "";
                lista_Adjunto = bus_Adjunto.Lista_ArchivoAdjunto(ref mensajeError);

                mostrar_mensajes(eTipoMail.Buzon_Ent, correo);
            }
            catch (Exception ex)
            {
                BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString());
                MessageBox.Show(ex.Message.ToString());
            }
        }