Пример #1
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());
            }
        }
Пример #2
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());
            }
        }
Пример #3
0
        public Frm_Test_Config_Mail_Envio_Recep(mail_Cuentas_Correo_Info Info)
            : this()
        {
            InfoCuenta = Info;

            listErrores = new List <cl_error_Info>();
            gridControl_tareas_realizadas.DataSource = listErrores;
        }
        public List <Info.mail_Cuentas_Correo_Info> consultar(ref string mensajeErrorOut)
        {
            try
            {
                List <mail_Cuentas_Correo_Info> lista_cuentas = new List <mail_Cuentas_Correo_Info>();

                using (EntitiesFactElectronica conexion = new EntitiesFactElectronica())
                {
                    var q = from C in conexion.mail_Cuentas_Correo
                            select C;
                    foreach (var item in q)
                    {
                        mail_Cuentas_Correo_Info infoCuentaMail = new mail_Cuentas_Correo_Info();

                        infoCuentaMail.IdCuenta                                = item.IdCuenta;
                        infoCuentaMail.Nombre_cuenta                           = item.Nombre_cuenta;
                        infoCuentaMail.direccion_correo                        = item.direccion_correo;
                        infoCuentaMail.Usuario                                 = item.Usuario;
                        infoCuentaMail.Password                                = item.Password;
                        infoCuentaMail.TipoCuenta                              = item.TipoCuenta;
                        infoCuentaMail.ServidorCorreoEntrante                  = item.ServidorCorreoEntrante;
                        infoCuentaMail.ServidorCorreoSaliente                  = item.ServidorCorreoSaliente;
                        infoCuentaMail.port_entrada                            = Convert.ToInt32(item.port_entrada);
                        infoCuentaMail.Port_salida                             = Convert.ToInt32(item.Port_salida);
                        infoCuentaMail.cta_predeterminada                      = item.cta_predeterminada;
                        infoCuentaMail.precisa_conexion_cifrada                = Convert.ToBoolean(item.precisa_conexion_cifrada);
                        infoCuentaMail.tipo_Seguridad                          = item.tipo_Seguridad;
                        infoCuentaMail.enviar_copia_x_cada_mail_enviado        = item.enviar_copia_x_cada_mail_enviado;
                        infoCuentaMail.cta_mail_para_envio_x_cbte_enviado      = item.cta_mail_para_envio_x_cbte_enviado;
                        infoCuentaMail.cta_mail_para_envio_x_cbte_no_auto      = item.cta_mail_para_envio_x_cbte_no_auto;
                        infoCuentaMail.enviar_mail_x_cada_cbte_no_auto         = item.enviar_mail_x_cada_cbte_no_auto;
                        infoCuentaMail.Usar_Credenciales_x_default_SMTP        = item.Usar_Credenciales_x_default_SMTP;
                        infoCuentaMail.Usa_SSL_Conexion_para_Descarga_correo   = item.Usa_SSL_Conexion_para_Descarga_correo;
                        infoCuentaMail.Guardar_1_copia_de_corre_en_server_mail = item.Guardar_1_copia_de_corre_en_server_mail;
                        infoCuentaMail.Borra_server_mail_cada_dias             = Convert.ToInt32(item.Borra_server_mail_cada_dias);
                        infoCuentaMail.Tipo_Authenticacion                     = item.Tipo_Authenticacion;
                        infoCuentaMail.Confirmacion_de_Entrega                 = (item.Confirmacion_de_Entrega == null) ? true : item.Confirmacion_de_Entrega;
                        infoCuentaMail.Confirmacion_de_Lectura                 = (item.Confirmacion_de_Lectura == null) ? true : item.Confirmacion_de_Lectura;

                        lista_cuentas.Add(infoCuentaMail);
                    }
                }

                return(lista_cuentas);
            }
            catch (Exception ex)
            {
                string mensaje = "";
                mensaje = ex.InnerException + " " + ex.Message;

                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), eTipoError.ERROR, mensaje, "",
                                                                                          "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);

                return(new List <mail_Cuentas_Correo_Info>());
            }
        }
Пример #5
0
 public bool ModificarCuentaBD(mail_Cuentas_Correo_Info infoCuentas, ref string mensajeErrorOut)
 {
     try
     {
         return(Odata.ModificarCuentaBD(infoCuentas, ref mensajeErrorOut));
     }
     catch (Exception)
     {
         return(false);
     }
 }
Пример #6
0
 private void gridViewCuentas_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
 {
     try
     {
         row = (mail_Cuentas_Correo_Info)gridViewCuentas.GetFocusedRow();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message.ToString());
         BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString());
     }
 }
Пример #7
0
        public void set_info_Modificar(mail_Cuentas_Correo_Info Info)
        {
            try
            {
                Info_Mail_Cta = Info;
            }
            catch (Exception ex)
            {

            }

        }
        public bool GuardarCuentaBD(mail_Cuentas_Correo_Info infoCuentas, ref string mensajeErrorOut)
        {
            try
            {
                using (EntitiesFactElectronica oEnti = new EntitiesFactElectronica())
                {
                    var Reg_a_Modificar = new mail_Cuentas_Correo();

                    Reg_a_Modificar.IdCuenta                                = infoCuentas.IdCuenta;
                    Reg_a_Modificar.Nombre_cuenta                           = infoCuentas.Nombre_cuenta;
                    Reg_a_Modificar.direccion_correo                        = infoCuentas.direccion_correo;
                    Reg_a_Modificar.Usuario                                 = infoCuentas.Usuario;
                    Reg_a_Modificar.Password                                = infoCuentas.Password;
                    Reg_a_Modificar.TipoCuenta                              = infoCuentas.TipoCuenta;
                    Reg_a_Modificar.ServidorCorreoEntrante                  = infoCuentas.ServidorCorreoEntrante;
                    Reg_a_Modificar.ServidorCorreoSaliente                  = infoCuentas.ServidorCorreoSaliente;
                    Reg_a_Modificar.Port_salida                             = infoCuentas.Port_salida;
                    Reg_a_Modificar.port_entrada                            = infoCuentas.port_entrada;
                    Reg_a_Modificar.cta_predeterminada                      = infoCuentas.cta_predeterminada;
                    Reg_a_Modificar.precisa_conexion_cifrada                = infoCuentas.precisa_conexion_cifrada;
                    Reg_a_Modificar.tipo_Seguridad                          = infoCuentas.tipo_Seguridad;
                    Reg_a_Modificar.enviar_copia_x_cada_mail_enviado        = infoCuentas.enviar_copia_x_cada_mail_enviado;
                    Reg_a_Modificar.cta_mail_para_envio_x_cbte_enviado      = infoCuentas.cta_mail_para_envio_x_cbte_enviado;
                    Reg_a_Modificar.cta_mail_para_envio_x_cbte_no_auto      = infoCuentas.cta_mail_para_envio_x_cbte_no_auto;
                    Reg_a_Modificar.enviar_mail_x_cada_cbte_no_auto         = infoCuentas.enviar_mail_x_cada_cbte_no_auto;
                    Reg_a_Modificar.Usar_Credenciales_x_default_SMTP        = infoCuentas.Usar_Credenciales_x_default_SMTP;
                    Reg_a_Modificar.Usa_SSL_Conexion_para_Descarga_correo   = infoCuentas.Usa_SSL_Conexion_para_Descarga_correo;
                    Reg_a_Modificar.Guardar_1_copia_de_corre_en_server_mail = infoCuentas.Guardar_1_copia_de_corre_en_server_mail;
                    Reg_a_Modificar.Borra_server_mail_cada_dias             = infoCuentas.Borra_server_mail_cada_dias;
                    Reg_a_Modificar.Tipo_Authenticacion                     = infoCuentas.Tipo_Authenticacion;

                    Reg_a_Modificar.Confirmacion_de_Lectura = infoCuentas.Confirmacion_de_Lectura;
                    Reg_a_Modificar.Confirmacion_de_Entrega = infoCuentas.Confirmacion_de_Entrega;

                    oEnti.mail_Cuentas_Correo.Add(Reg_a_Modificar);


                    oEnti.SaveChanges();
                }
                return(true);
            }
            catch (Exception ex)
            {
                mensajeErrorOut = ex.InnerException + " " + ex.Message;
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), eTipoError.ERROR, mensajeErrorOut, "",
                                                                                          "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensajeErrorOut);

                return(false);
            }
        }
 public void set_Info_Cuenta_Modificar(mail_Cuentas_Correo_Info Info)
 {
     try
     {
         this.uC_Cuenta_Configuracion1.set_info_Modificar(Info);
         this.uC_Cuenta_Configuracion1.set_controles();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message.ToString());
         BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString());
     }
 }
Пример #10
0
        private Boolean Validacion_x_Mensaje(mail_Mensaje_Info MensajeInfo, ref string mensajeErrorOut)
        {
            try
            {
                string IdCuenta_mail = "";


                if (MensajeInfo.InfoContribuyente == null)
                {
                    mensajeErrorOut = "No existe contribuyente en el objeto MensajeInfo";
                    return(false);
                }

                mail_Cuentas_Correo_Info InfoCtaMail_Remitente = new mail_Cuentas_Correo_Info();


                if (listMail_x_Empresa.Count > 0)
                {
                    var qMail = from C in listMail_x_Empresa
                                where C.IdEmpresa == MensajeInfo.InfoContribuyente.IdEmpresa
                                select C;

                    if (qMail.Count() > 0)
                    {
                        foreach (var item in qMail)
                        {
                            IdCuenta_mail = item.IdCuenta;
                        }
                    }
                    else
                    {
                        mensajeErrorOut = "No Existe cuenta de correo relacionada con el emisor verique en configuracion de cuenta de correo";
                        return(false);
                    }
                }
                else
                {
                    mensajeErrorOut = "No Existe cuenta de correo relacionada con el emisor verique en configuracion de cuenta de correo";
                    return(false);
                }


                return(true);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
                BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString());
                return(false);
            }
        }
Пример #11
0
        public void set_info_Nuevo(mail_Cuentas_Correo_Info Info)
        {
            try
            {
                Info_Mail_Cta = Info;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
                BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString());

            }

        }
Пример #12
0
        public Boolean Guadrdar(ref string msg)
        {
            try
            {
                mail_Cuentas_Correo_Info InfoT = new mail_Cuentas_Correo_Info();
                InfoT = get_Info();

                return BusMail.GuardarCuentaBD(InfoT, ref msg);

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
                BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString());
                return false;

            }
        }
Пример #13
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());
            }
        }
Пример #14
0
        private void btnTesCuenta_Click(object sender, EventArgs e)
        {
            try
            {

                mail_Cuentas_Correo_Info InfoT = new mail_Cuentas_Correo_Info();
                InfoT = get_Info();

                Frm_Test_Config_Mail_Envio_Recep frm = new Frm_Test_Config_Mail_Envio_Recep(InfoT);
                frm.StartPosition = FormStartPosition.CenterScreen;
                frm.ShowDialog();
                

                
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message.ToString());
                BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString());
            }   
        
        }
Пример #15
0
        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());
            }
        }
Пример #16
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());
            }
        }
Пример #17
0
        public Boolean Enviar_Correo_hold(mail_Mensaje_Info MensajeInfo, ref string mensajeErrorOut)
        {
            string SConfigCta = "";

            try
            {
                if (param.AUTORIZADO_ENVIO_CORREO == false)
                {
                    mensajeErrorOut = "No esta autorizado para envio de correo ";
                    return(false);
                }

                string mensajeError            = "";
                string tipo_conex_cifrada_smtp = "";


                //optengo el nombre de la pc para saber desde donde se envi el correo para auditar la duplicacion...
                MensajeInfo.Texto_mensaje = MensajeInfo.Texto_mensaje + " PC/Envio: " + Funciones.Get_Nombre_PC();
                /////////////


                mail_Cuentas_Correo_Info InfoCtaMail_Remitente = new mail_Cuentas_Correo_Info();
                InfoCtaMail_Remitente = listMail_cta.FirstOrDefault(v => v.IdCuenta == MensajeInfo.IdCuenta);


                if (listMail_x_Empresa.Count == 0)
                {
                    mensajeErrorOut = "No Existe cuentas para envio de correo configuradas en la base ";
                    return(false);
                }

                if (InfoCtaMail_Remitente == null || InfoCtaMail_Remitente.IdCuenta == null)
                {
                    mensajeErrorOut = "No existe una cuenta relaciona en la base para la cuenta del mensaje verique por base";
                    return(false);
                }


                if (!mailValida.email_bien_escrito(MensajeInfo.Para))
                {
                    mensajeErrorOut            = "La cuenta de correo es Invalida ";
                    MensajeInfo.IdTipo_Mensaje = eTipoMail.Mail_NO_Env_x_error;
                    datamaMail.Actualizar_TipoMensaje(MensajeInfo, ref mensajeErrorOut);
                    return(false);
                }

                if (MensajeInfo.IdCuenta == "" || MensajeInfo.IdCuenta == null)
                {
                    InfoCtaMail_Remitente      = listMail_cta.FirstOrDefault(v => v.cta_predeterminada == true);
                    MensajeInfo.IdCuenta       = InfoCtaMail_Remitente.IdCuenta;
                    MensajeInfo.mail_remitente = InfoCtaMail_Remitente.direccion_correo;

                    datamaMail.Actualizar_Datos_Cuenta(MensajeInfo, ref mensajeErrorOut);

                    mensajeErrorOut = "la Cuenta Remitente no esta establecido en el mensaje se enviara con la cuenta por default ...";
                }
                SmtpMail              oSmtpMail_msg = new SmtpMail("ES-C1407722592-00106-56VB4AE2B4F8TB75-641B598EBE4D439A");
                SmtpServer            oSmtpServer   = new SmtpServer(InfoCtaMail_Remitente.ServidorCorreoSaliente, InfoCtaMail_Remitente.Port_salida);
                EASendMail.SmtpClient oclienteSmtp  = new EASendMail.SmtpClient();



                if (InfoCtaMail_Remitente.Confirmacion_de_Entrega == true || InfoCtaMail_Remitente.Confirmacion_de_Lectura == true)
                {
                    oSmtpMail_msg.DeliveryNotification = EASendMail.DeliveryNotificationOptions.OnFailure | EASendMail.DeliveryNotificationOptions.OnSuccess | EASendMail.DeliveryNotificationOptions.Delay;

                    if (InfoCtaMail_Remitente.Confirmacion_de_Lectura == true)
                    {
                        oSmtpMail_msg.Headers.Add("Read-Receipt-To", InfoCtaMail_Remitente.direccion_correo);
                    }
                    if (InfoCtaMail_Remitente.Confirmacion_de_Entrega == true)
                    {
                        oSmtpMail_msg.Headers.Add("Disposition-Notification-To", InfoCtaMail_Remitente.direccion_correo);
                    }
                }

                // si tiene archivo adjunto
                if (MensajeInfo.Tiene_Adjunto == true)
                {
                    #region codigo viejo q actualiza el campo de mail



                    #endregion


                    //optengo los archivos adjuntos
                    MensajeInfo.list_Archivos_Adjuntos = OdataArchivoAdjunto.Lista_ArchivoAdjunto_Mensaje_x_comprobante(MensajeInfo.IdMensaje, ref mensajeErrorOut);
                    foreach (var item in MensajeInfo.list_Archivos_Adjuntos)
                    {
                        comprobante = new tb_Comprobante_Info();
                        comprobante = Bus_Comprobante_emisor.Comprobante_consulta_Id_Comprobante(item.IdEmpresa, item.IdComprobante, ref mensajeError);

                        byte[] BinarioFileAdjunto = null;



                        if (comprobante.IdComprobante != null)
                        {
                            // si la extencion ex .pdf lo creo en el tmp
                            if (item.extensionArchivo.ToUpper() == ".PDF")
                            {
                                XtraReport   Reporte      = new XtraReport();
                                Rpt_Ride_bus Rpt_Ride_Bus = new Rpt_Ride_bus(listEmpr);
                                Reporte = Rpt_Ride_Bus.Optener_reporte(comprobante, ref mensajeError);
                                //pdf
                                FileStream FileBinary;
                                FileBinary = new FileStream(RutaArchivos + "\\" + comprobante.IdComprobante + ".pdf", FileMode.Create);
                                DevExpress.XtraPrinting.PdfExportOptions Optione = new DevExpress.XtraPrinting.PdfExportOptions();
                                Reporte.ExportToPdf(FileBinary, Optione);
                                FileBinary.Close();
                                // lleno la clase archivo adjunto con el pdf que se creo en el tmp
                                DirectoryInfo   Directorio_Pdf_Xml = new DirectoryInfo(RutaArchivos);
                                List <FileInfo> listaFiles         = Directorio_Pdf_Xml.GetFiles(comprobante.IdComprobante + ".pdf").ToList();
                                foreach (var itemBi in listaFiles)
                                {
                                    FileStream file = new FileStream(RutaArchivos + itemBi.Name, FileMode.Open);
                                    BinarioFileAdjunto = new byte[file.Length];

                                    file.Read(BinarioFileAdjunto, 0, Convert.ToInt32(file.Length));
                                    file.Close();
                                }
                            }
                        }

                        // LLENO EL BINARIO PARA EL XML
                        if (item.extensionArchivo.ToUpper() == ".XML")
                        {
                            XmlDocument xmlOrigen = new XmlDocument();
                            xmlOrigen.Load(new StringReader(comprobante.s_XML));
                            BinarioFileAdjunto = Encoding.UTF8.GetBytes(xmlOrigen.OuterXml);
                        }


                        oSmtpMail_msg.AddAttachment(item.IdComprobante + item.extensionArchivo, BinarioFileAdjunto);
                    }
                }


                tipo_conex_cifrada_smtp = InfoCtaMail_Remitente.tipo_Seguridad;

                if (InfoCtaMail_Remitente.tipo_Seguridad != "Ninguno")
                {
                    oSmtpServer.User     = InfoCtaMail_Remitente.Usuario;
                    oSmtpServer.Password = InfoCtaMail_Remitente.Password;
                }


                switch (tipo_conex_cifrada_smtp)
                {
                case "SSL":
                    oSmtpServer.ConnectType = SmtpConnectType.ConnectSSLAuto;
                    oSmtpServer.Port        = 465;
                    break;

                case "TLS":
                    oSmtpServer.ConnectType = SmtpConnectType.ConnectSSLAuto;
                    break;

                case "Ninguno":
                    oSmtpServer.ConnectType = SmtpConnectType.ConnectNormal;
                    break;

                case "STARTTLS":
                    oSmtpServer.ConnectType = SmtpConnectType.ConnectSTARTTLS;
                    break;

                default:
                    oSmtpServer.ConnectType = SmtpConnectType.ConnectNormal;
                    break;
                }



                oSmtpMail_msg.To.Add(new EASendMail.MailAddress(MensajeInfo.Para));

                if (MensajeInfo.Para_CC != "" && MensajeInfo.Para_CC != null)
                {
                    string[] slistaCorreo = MensajeInfo.Para_CC.Split(';');

                    foreach (var item in slistaCorreo)
                    {
                        oSmtpMail_msg.Cc.Add(new EASendMail.MailAddress(item.Trim()));
                    }
                }

                oSmtpMail_msg.From     = new EASendMail.MailAddress(InfoCtaMail_Remitente.direccion_correo);
                oSmtpMail_msg.Subject  = MensajeInfo.Asunto;
                oSmtpMail_msg.TextBody = MensajeInfo.Texto_mensaje;



                SConfigCta = "msg.From :" + oSmtpMail_msg.From.ToString() + "\n";
                SConfigCta = SConfigCta + " msg.To:" + oSmtpMail_msg.To.ToString() + "\n";
                SConfigCta = SConfigCta + " msg.Subject " + oSmtpMail_msg.Subject.ToString() + "\n";
                SConfigCta = SConfigCta + "msg.Body :" + oSmtpMail_msg.TextBody.ToString() + "\n";
                SConfigCta = SConfigCta + "oSmtpServer.Port:" + oSmtpServer.Port.ToString() + "\n";
                SConfigCta = SConfigCta + " oSmtpServer.User:"******"\n";
                SConfigCta = SConfigCta + " oSmtpServer.Password:"******"\n";
                SConfigCta = SConfigCta + " oSmtpServer.Protocol :" + oSmtpServer.Protocol + "\n";

                if (MensajeInfo.Para == "")
                {
                    mensajeErrorOut = "No hay cuenta de correo a quien enviar ";
                    return(false);
                }

                //enviando correo

                oclienteSmtp.SendMail(oSmtpServer, oSmtpMail_msg);

                if (MensajeInfo.IdMensaje > 0)// modificar
                {
                    MensajeInfo.IdTipo_Mensaje = eTipoMail.Enviado;
                    datamaMail.Actualizar_TipoMensaje(MensajeInfo, ref mensajeErrorOut);
                }
                else
                {
                    MensajeInfo.IdTipo_Mensaje = eTipoMail.Enviado;
                    datamaMail.GrabarMensajeDB(MensajeInfo, ref mensajeErrorOut);
                }

                return(true);
            }
            catch (Exception ex)
            {
                mensajeErrorOut = "catch (SmtpException ex) : " + ex.Message + " " + ex.InnerException + " datos de la cta:" + SConfigCta;
                return(false);
            }
        }
Пример #18
0
        public Boolean Enviar_Correo(mail_Mensaje_Info MensajeInfo, ref string mensajeErrorOut)
        {
            string SConfigCta = "";

            try
            {
                if (param.AUTORIZADO_ENVIO_CORREO == false)
                {
                    mensajeErrorOut = "No esta autorizado para envio de correo ";
                    return(false);
                }

                string mensajeError            = "";
                string tipo_conex_cifrada_smtp = "";


                //optengo el nombre de la pc para saber desde donde se envi el correo para auditar la duplicacion...
                MensajeInfo.Texto_mensaje = MensajeInfo.Texto_mensaje + " PC/Envio: " + Funciones.Get_Nombre_PC();
                /////////////


                mail_Cuentas_Correo_Info InfoCtaMail_Remitente = new mail_Cuentas_Correo_Info();
                InfoCtaMail_Remitente = listMail_cta.FirstOrDefault(v => v.IdCuenta == MensajeInfo.IdCuenta);


                if (listMail_x_Empresa.Count == 0)
                {
                    mensajeErrorOut = "No Existe cuentas para envio de correo configuradas en la base ";
                    return(false);
                }

                if (InfoCtaMail_Remitente == null || InfoCtaMail_Remitente.IdCuenta == null)
                {
                    mensajeErrorOut = "No existe una cuenta relaciona en la base para la cuenta del mensaje verique por base";
                    return(false);
                }


                //if (!mailValida.email_bien_escrito(MensajeInfo.Para))
                //{
                //    mensajeErrorOut = "La cuenta de correo es Invalida ";
                //    MensajeInfo.IdTipo_Mensaje = eTipoMail.Mail_NO_Env_x_error;
                //    datamaMail.Actualizar_TipoMensaje(MensajeInfo, ref mensajeErrorOut);
                //    return false;
                //}

                if (MensajeInfo.IdCuenta == "" || MensajeInfo.IdCuenta == null)
                {
                    InfoCtaMail_Remitente      = listMail_cta.FirstOrDefault(v => v.cta_predeterminada == true);
                    MensajeInfo.IdCuenta       = InfoCtaMail_Remitente.IdCuenta;
                    MensajeInfo.mail_remitente = InfoCtaMail_Remitente.direccion_correo;

                    datamaMail.Actualizar_Datos_Cuenta(MensajeInfo, ref mensajeErrorOut);

                    mensajeErrorOut = "la Cuenta Remitente no esta establecido en el mensaje se enviara con la cuenta por default ...";
                }
                MailMessage oSmtpMail_msg = new MailMessage();


                // si tiene archivo adjunto
                if (MensajeInfo.Tiene_Adjunto == true)
                {
                    //optengo los archivos adjuntos
                    MensajeInfo.list_Archivos_Adjuntos = OdataArchivoAdjunto.Lista_ArchivoAdjunto_Mensaje_x_comprobante(MensajeInfo.IdMensaje, ref mensajeErrorOut);
                    foreach (var item in MensajeInfo.list_Archivos_Adjuntos)
                    {
                        comprobante = new tb_Comprobante_Info();
                        comprobante = Bus_Comprobante_emisor.Comprobante_consulta_Id_Comprobante(item.IdEmpresa, item.IdComprobante, ref mensajeError);

                        byte[] BinarioFileAdjunto = null;
                        if (comprobante.IdComprobante != null)
                        {
                            // si la extencion ex .pdf lo creo en el tmp
                            if (item.extensionArchivo.ToUpper() == ".PDF")
                            {
                                XtraReport   Reporte      = new XtraReport();
                                Rpt_Ride_bus Rpt_Ride_Bus = new Rpt_Ride_bus(listEmpr);
                                Reporte = Rpt_Ride_Bus.Optener_reporte(comprobante, ref mensajeError);
                                //pdf
                                FileStream FileBinary;
                                FileBinary = new FileStream(RutaArchivos + "\\" + comprobante.IdComprobante + ".pdf", FileMode.Create);
                                DevExpress.XtraPrinting.PdfExportOptions Optione = new DevExpress.XtraPrinting.PdfExportOptions();
                                Reporte.ExportToPdf(FileBinary, Optione);
                                FileBinary.Close();
                                // lleno la clase archivo adjunto con el pdf que se creo en el tmp
                                DirectoryInfo   Directorio_Pdf_Xml = new DirectoryInfo(RutaArchivos);
                                List <FileInfo> listaFiles         = Directorio_Pdf_Xml.GetFiles(comprobante.IdComprobante + ".pdf").ToList();
                                foreach (var itemBi in listaFiles)
                                {
                                    FileStream file = new FileStream(RutaArchivos + itemBi.Name, FileMode.Open);
                                    BinarioFileAdjunto = new byte[file.Length];

                                    file.Read(BinarioFileAdjunto, 0, Convert.ToInt32(file.Length));
                                    file.Close();
                                }
                            }
                        }

                        // LLENO EL BINARIO PARA EL XML
                        if (item.extensionArchivo.ToUpper() == ".XML")
                        {
                            XmlDocument xmlOrigen = new XmlDocument();
                            xmlOrigen.Load(new StringReader(comprobante.s_XML));
                            BinarioFileAdjunto = Encoding.UTF8.GetBytes(xmlOrigen.OuterXml);
                        }


                        oSmtpMail_msg.Attachments.Add(new System.Net.Mail.Attachment(new MemoryStream(BinarioFileAdjunto), item.IdComprobante + item.extensionArchivo));
                    }
                }


                tipo_conex_cifrada_smtp = InfoCtaMail_Remitente.tipo_Seguridad;


                if (MensajeInfo.Para == "")
                {
                    return(false);
                }
                oSmtpMail_msg.To.Add(MensajeInfo.Para);

                if (MensajeInfo.Para_CC != "" && MensajeInfo.Para_CC != null)
                {
                    string[] slistaCorreo = MensajeInfo.Para_CC.Split(';');

                    foreach (var item in slistaCorreo)
                    {
                        oSmtpMail_msg.CC.Add(item.Trim());
                    }
                }

                oSmtpMail_msg.From    = new System.Net.Mail.MailAddress(InfoCtaMail_Remitente.direccion_correo);
                oSmtpMail_msg.Subject = MensajeInfo.Asunto;
                oSmtpMail_msg.Body    = MensajeInfo.Asunto + "\n\n\n\n";
                oSmtpMail_msg.Body    = oSmtpMail_msg.Body + " " + MensajeInfo.RazonSocial_Emisor;


                if (MensajeInfo.Para == "")
                {
                    mensajeErrorOut = "No hay cuenta de correo a quien enviar ";
                    return(false);
                }

                //enviando correo


                System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();
                smtp.Host        = InfoCtaMail_Remitente.ServidorCorreoSaliente;
                smtp.EnableSsl   = InfoCtaMail_Remitente.precisa_conexion_cifrada;
                smtp.Port        = InfoCtaMail_Remitente.Port_salida;
                smtp.Credentials = new NetworkCredential(InfoCtaMail_Remitente.direccion_correo, InfoCtaMail_Remitente.Password);
                smtp.Send(oSmtpMail_msg);


                if (MensajeInfo.IdMensaje > 0)// modificar
                {
                    MensajeInfo.IdTipo_Mensaje = eTipoMail.Enviado;
                    datamaMail.Actualizar_TipoMensaje(MensajeInfo, ref mensajeErrorOut);
                }
                //else
                //{
                //    MensajeInfo.IdTipo_Mensaje = eTipoMail.Enviado;
                //    datamaMail.GrabarMensajeDB(MensajeInfo, ref mensajeErrorOut);
                //}

                return(true);
            }
            catch (Exception ex)
            {
                mensajeErrorOut = "catch (SmtpException ex) : " + ex.Message + " " + ex.InnerException + " datos de la cta:" + SConfigCta;
                return(false);
            }
        }
Пример #19
0
        private void BtnEnviarMail_Click(object sender, EventArgs e)
        {
            txt_correo_destinatario.Focus();
            //if (ValidarCorreo.email_bien_escrito(txt_correo_destinatario.Text) == false)
            //{
            //    MessageBox.Show("Correo destinatario esta mal escrito ... Error mail no valido");
            //    return;
            //}

            listadosArchivoaAdjunto = new List <mail_Mensaje_Archi_Adjunto_Info>();

            if (ValidarTxt() == true)
            {
                return;
            }

            Int32 Secuencia_Archivo_Adjunto = Bus_ArchivoAdjunto.SecuenciaArchivoAdjunto();
            bool  BCorreo_GraboOk;

            try
            {
                tb_Contribuyente_Info InfoContribuyente = ListaInfoContribuyente.FirstOrDefault(var => var.IdContribuyente == Convert.ToDecimal(cmbDestinatarios.EditValue));

                mail_Mensaje_Info Mensaje = new mail_Mensaje_Info();
                Mensaje.InfoContribuyente = InfoContribuyente;
                Mensaje.IdContribuyente   = InfoContribuyente.IdContribuyente;
                Mensaje.Para           = txt_correo_destinatario.Text;
                Mensaje.Para_CC        = txt_correo_destinatario_CC.Text;
                Mensaje.Asunto         = txtAsunto.Text;
                Mensaje.Texto_mensaje  = txt_mensaje.Text;
                Mensaje.IdTipo_Mensaje = eTipoMail.Buzon_Sal;
                Mensaje.Fecha          = DateTime.Now;
                Mensaje.Eliminado      = false;
                Mensaje.Respondido     = false;
                Mensaje.Leido          = true;

                if (lbRuta.Text == "")
                {
                    Mensaje.Tiene_Adjunto = false;
                }
                else
                {
                    Mensaje.Tiene_Adjunto = true;
                }
                Mensaje.Prioridad      = 1;
                Mensaje.No_Leido       = false;
                Mensaje.mail_remitente = InfoContribuyente.Mail;
                // lleno la clase de archivos adjuntos con los item check =true
                //Listadors_de_Comprobante_Emisor

                var lista_Filtrada = from filtrado in Listadors_de_Comprobante_Emisor
                                     where filtrado.Checked == true
                                     select filtrado;

                //recorro los cbtes chequeados
                foreach (var item in lista_Filtrada)
                {
                    try
                    {
                        mail_Mensaje_Archi_Adjunto_Info FilePdf = new mail_Mensaje_Archi_Adjunto_Info();
                        FilePdf.descripcion_archi      = item.IdComprobante + ".pdf";
                        FilePdf.extensionArchivo       = ".pdf";
                        FilePdf.Archivo_adjunto        = null;
                        FilePdf.Archivo_adjunto_stream = null;
                        FilePdf.IdComprobante          = item.IdComprobante;
                        listadosArchivoaAdjunto.Add(FilePdf);
                        FilePdf.Secuencia = 1;
                        FilePdf.IdEmpresa = item.IdEmpresa;

                        mail_Mensaje_Archi_Adjunto_Info FileXML = new mail_Mensaje_Archi_Adjunto_Info();
                        FileXML.descripcion_archi      = item.IdComprobante + ".xml";
                        FileXML.extensionArchivo       = ".xml";
                        FileXML.Archivo_adjunto        = null;
                        FileXML.Archivo_adjunto_stream = null;
                        FileXML.IdComprobante          = item.IdComprobante;
                        listadosArchivoaAdjunto.Add(FileXML);
                        FileXML.Secuencia = 2;
                        FileXML.IdEmpresa = item.IdEmpresa;

                        if (lbRuta.Text != "Ruta del Archivo Adjunto")
                        {
                            AdjuntoInfo           = new mail_Mensaje_Archi_Adjunto_Info();
                            AdjuntoInfo.IdMensaje = BusMensaje.IdMensaje();
                            AdjuntoInfo.Secuencia = Secuencia_Archivo_Adjunto;
                            FileStream file           = new FileStream(lbRuta.Text, FileMode.Open);
                            Byte[]     ArchivoAdjunto = new byte[file.Length];
                            file.Read(ArchivoAdjunto, 0, Convert.ToInt32(file.Length));
                            AdjuntoInfo.Archivo_adjunto   = ArchivoAdjunto;
                            AdjuntoInfo.extensionArchivo  = Path.GetExtension(lbRuta.Text);
                            AdjuntoInfo.descripcion_archi = Path.GetFileName(lbRuta.Text);
                            listadosArchivoaAdjunto.Add(AdjuntoInfo);
                            Secuencia_Archivo_Adjunto = Secuencia_Archivo_Adjunto + 1;
                            file.Close();
                        }
                    }
                    catch (Exception ex)
                    {
                        BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString());
                    }
                }

                Mensaje.list_Archivos_Adjuntos = listadosArchivoaAdjunto;//le asigno la lista de archivo adjunto a la clase mensaje que lleva los datos para enviar el correo
                DialogResult result = DialogResult.Yes;

                if (txtAsunto.Text == "")
                {
                    result = MessageBox.Show("El Mensaje no Tiene Asunto Desea Enviar sin Asunto?", "MailEfirm", MessageBoxButtons.YesNoCancel);
                }

                if (result == DialogResult.Yes)
                {
                    mail_Cuentas_Correo_x_Empresa_Info InfoCtaxCorreo = new mail_Cuentas_Correo_x_Empresa_Info();
                    mail_Cuentas_Correo_Info           InfoCtaCorreo  = new mail_Cuentas_Correo_Info();
                    listmail_Cuentas_Correo_x_Empresa = Busmail_Cuentas_Correo_x_Empresa.Consulta_mail_Cuentas_Correo_x_Empresa(ref message);

                    InfoCtaxCorreo = listmail_Cuentas_Correo_x_Empresa.Find(v => v.IdEmpresa == Mensaje.InfoContribuyente.IdEmpresa);
                    InfoCtaCorreo  = listmail_Cuentas_Correo.Find(v => v.IdCuenta == InfoCtaxCorreo.IdCuenta);

                    Mensaje.IdCuenta       = InfoCtaCorreo.IdCuenta;
                    Mensaje.mail_remitente = InfoCtaCorreo.direccion_correo;

                    BCorreo_GraboOk = BusMensaje.GrabarMensajeDB(Mensaje, ref referencia);
                    if (BCorreo_GraboOk == true)
                    {
                        try
                        {
                            if (InfoCtaCorreo.enviar_copia_x_cada_mail_enviado == true)
                            {
                                Mensaje.Asunto = "Copia Bak. " + Mensaje.Asunto;
                                Mensaje.Asunto_texto_mostrado = "Copia Bak. " + Mensaje.Asunto_texto_mostrado;
                                Mensaje.IdMensaje             = 0;
                                Mensaje.Para    = InfoCtaCorreo.cta_mail_para_envio_x_cbte_enviado;
                                BCorreo_GraboOk = BusMensaje.GrabarMensajeDB(Mensaje, ref referencia);
                            }
                        }
                        catch (Exception)
                        { }

                        Event_Correo_generado();
                    }
                    else
                    {
                        MessageBox.Show("Correo No Guardado Coreectamente");
                    }
                }
                else if (result == DialogResult.No)
                {
                    txtAsunto.Focus();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
                BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString());
            }
        }
Пример #20
0
        public void Envio_Cbte_x_correo(tb_Comprobante_Info InfoComprobante_a_firmar, List <string> ListaCorreo, string SNombreEmpresa, string EstadoDoc_Auto_o_NoAuto, string IdAmbiente, eTipoEnvioMail STransaccion_q_envia, ref string mensajeErroOut)
        {
            try
            {
                Transaccion_q_envia = STransaccion_q_envia;
                tb_Contribuyente_Info InfoContibuyente = new tb_Contribuyente_Info();
                tb_Contribuyente_Bus  BusContri        = new tb_Contribuyente_Bus();
                InfoContibuyente = BusContri.GetContribuyente_Info(InfoComprobante_a_firmar.IdEmpresa, InfoComprobante_a_firmar.Cedula_Ruc, ref mensajeErroOut);
                string            sTipoDoc = optener_nombre_tipo_documento(InfoComprobante_a_firmar.IdTipoDocumento);
                mail_Mensaje_Bus  BusMail  = new mail_Mensaje_Bus();
                mail_Mensaje_Info InfoMail = new mail_Mensaje_Info();
                InfoMail.Asunto = "Ha recibido un nuevo comprobante electronico " + sTipoDoc + " Cbte#" + InfoComprobante_a_firmar.IdComprobante + " ";
                InfoMail.Asunto_texto_mostrado = "Ha recibido un nuevo comprobante electronico" + sTipoDoc + " Cbte#" + InfoComprobante_a_firmar.IdComprobante + " ";
                InfoMail.Fecha          = DateTime.Now;
                InfoMail.IdTipo_Mensaje = eTipoMail.Buzon_Sal;
                mail_Mensaje_Archi_Adjunto_Info FilePdf = new mail_Mensaje_Archi_Adjunto_Info();
                FilePdf.descripcion_archi      = InfoComprobante_a_firmar.IdComprobante + ".pdf";
                FilePdf.extensionArchivo       = ".pdf";
                FilePdf.Archivo_adjunto        = null;
                FilePdf.Archivo_adjunto_stream = null;
                FilePdf.Secuencia     = 1;
                FilePdf.IdComprobante = InfoComprobante_a_firmar.IdComprobante;
                FilePdf.IdEmpresa     = InfoComprobante_a_firmar.IdEmpresa;
                InfoMail.list_Archivos_Adjuntos.Add(FilePdf);
                mail_Mensaje_Archi_Adjunto_Info FileXML = new mail_Mensaje_Archi_Adjunto_Info();
                FileXML.descripcion_archi      = InfoComprobante_a_firmar.IdComprobante + ".xml";
                FileXML.extensionArchivo       = ".xml";
                FileXML.Archivo_adjunto        = null;
                FileXML.Archivo_adjunto_stream = null;
                FileXML.IdComprobante          = InfoComprobante_a_firmar.IdComprobante;
                FileXML.Secuencia = 2;
                FileXML.IdEmpresa = InfoComprobante_a_firmar.IdEmpresa;
                InfoMail.list_Archivos_Adjuntos.Add(FileXML);
                InfoMail.IdContribuyente = InfoContibuyente.IdContribuyente;
                InfoMail.Prioridad       = 0;
                string CuerpoMensaje = "Estimado(a):" + InfoContibuyente.Nom_Contribuyente + "\n";
                CuerpoMensaje          = CuerpoMensaje + "\n";
                CuerpoMensaje          = CuerpoMensaje + " Se le informa que ha recibido un nuevo comprobante electronico";
                CuerpoMensaje          = CuerpoMensaje + "\n";
                CuerpoMensaje          = CuerpoMensaje + "\n";
                CuerpoMensaje          = CuerpoMensaje + "Resumen";
                CuerpoMensaje          = CuerpoMensaje + "\n";
                CuerpoMensaje          = CuerpoMensaje + "Tipo de Documento:" + sTipoDoc + "\n";
                CuerpoMensaje          = CuerpoMensaje + "No. documento:" + InfoComprobante_a_firmar.IdComprobante + "\n";
                CuerpoMensaje          = CuerpoMensaje + "Fecha de Emisión:" + InfoComprobante_a_firmar.Fecha_Emi_Fact + "\n";
                CuerpoMensaje          = CuerpoMensaje + "No.Autorizacion:" + InfoComprobante_a_firmar.Numero_Autorizacion + "\n";
                CuerpoMensaje          = CuerpoMensaje + "Fecha Autorizacion:" + InfoComprobante_a_firmar.FechaAutorizacion + "\n";
                CuerpoMensaje          = CuerpoMensaje + "\n";
                CuerpoMensaje          = CuerpoMensaje + "Ahorremos papel y ayudemos al medio ambiente! ";
                CuerpoMensaje          = CuerpoMensaje + "\n";
                CuerpoMensaje          = CuerpoMensaje + "Atentamente,";
                CuerpoMensaje          = CuerpoMensaje + "\n";
                CuerpoMensaje          = CuerpoMensaje + SNombreEmpresa;
                CuerpoMensaje          = CuerpoMensaje + "\n";
                CuerpoMensaje          = CuerpoMensaje + " Tr-Efirm:" + STransaccion_q_envia;
                InfoMail.Texto_mensaje = CuerpoMensaje;
                InfoMail.Tiene_Adjunto = true;


                InfoMail.InfoContribuyente = InfoContibuyente;



                mail_Cuentas_Correo_x_Empresa_Info InfoCuentaCorreo_ = new mail_Cuentas_Correo_x_Empresa_Info();
                mail_Cuentas_Correo_Info           InfoCta_remitente = new mail_Cuentas_Correo_Info();



                if (listmail_cuentas_correo_x_empresa != null)
                {
                    InfoCuentaCorreo_ = listmail_cuentas_correo_x_empresa.Find(v => v.IdEmpresa == InfoComprobante_a_firmar.IdEmpresa);

                    if (InfoCuentaCorreo_.IdCuenta != null)
                    {
                        InfoCta_remitente = listmail_Cuentas_Correo.Find(v => v.IdCuenta == InfoCuentaCorreo_.IdCuenta);

                        InfoMail.IdCuenta       = InfoCta_remitente.IdCuenta;
                        InfoMail.mail_remitente = InfoCta_remitente.direccion_correo;
                    }
                }
                Boolean Envio_Correo_al_cliente = false;

                if (EstadoDoc_Auto_o_NoAuto == "AUTORIZADO" && IdAmbiente == "2")
                {
                    if (Bus_Archivo_Adjunto.Verificar_Correo_Existe(InfoComprobante_a_firmar.IdEmpresa, InfoComprobante_a_firmar.IdComprobante, ref mensajeErroOut))
                    {
                        if (Convert.ToString(Transaccion_q_envia) == "NUEVO")
                        {
                            return;
                        }
                    }



                    if (ListaCorreo.Count > 0)// si hay correo envio con ese correo
                    {
                        foreach (var itemCorreo in ListaCorreo)
                        {
                            InfoMail.Para = itemCorreo;


                            if (InfoCta_remitente.enviar_copia_x_cada_mail_enviado == true)
                            {
                                InfoMail.Para_CCO = InfoCta_remitente.cta_mail_para_envio_x_cbte_enviado;
                            }

                            BusMail.GrabarMensajeDB(InfoMail, ref mensajeErroOut);
                            Envio_Correo_al_cliente = true;
                        }
                    }
                    else // envio un solo correo con el mail de contribuyente
                    {
                        InfoMail.Para = InfoContibuyente.Mail;
                        if (InfoCta_remitente.enviar_copia_x_cada_mail_enviado == true)
                        {
                            InfoMail.Para_CCO = InfoCta_remitente.cta_mail_para_envio_x_cbte_enviado;
                        }
                        BusMail.GrabarMensajeDB(InfoMail, ref mensajeErroOut);
                        Envio_Correo_al_cliente = true;
                    }



                    //if (Envio_Correo_al_cliente == true)// solo si envio correo al cliente envio una copia
                    //{

                    //    if (InfoCta_remitente.enviar_copia_x_cada_mail_enviado == true)
                    //    {

                    //        InfoMail.Para = InfoCta_remitente.cta_mail_para_envio_x_cbte_enviado;

                    //        InfoMail.Asunto = "Copia.." + InfoMail.Asunto;
                    //        BusMail.GrabarMensajeDB(InfoMail, ref mensajeErroOut);
                    //    }
                    //}
                }

                else if (EstadoDoc_Auto_o_NoAuto == "NO AUTORIZADO")
                {
                    if (InfoCta_remitente.enviar_mail_x_cada_cbte_no_auto == true)
                    {
                        InfoMail.Para   = InfoCta_remitente.cta_mail_para_envio_x_cbte_no_auto;
                        InfoMail.Asunto = "Alerta.. cbte No Autorizado.. " + InfoMail.Asunto;
                        BusMail.GrabarMensajeDB(InfoMail, ref mensajeErroOut);
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
 public void set_Info_Cuenta_Nueva(mail_Cuentas_Correo_Info Info)
 {
     this.uC_Cuenta_Configuracion1.set_info_Nuevo(Info);
 }