public bool EmailGuardarArchivoAdjunto(mail_Mensaje_Archi_Adjunto_Info infoAdjunto, ref string mensajeError)
        {
            try
            {
                using (EntitiesFactElectronica conexion = new EntitiesFactElectronica())
                {
                    var Reg_a_Guardar = new mail_Mensaje_Archi_Adjunto();
                    Reg_a_Guardar.IdMensaje         = infoAdjunto.IdMensaje;
                    Reg_a_Guardar.Secuencia         = infoAdjunto.Secuencia;
                    Reg_a_Guardar.Archivo_adjunto   = infoAdjunto.Archivo_adjunto;
                    Reg_a_Guardar.descripcion_archi = infoAdjunto.descripcion_archi;
                    Reg_a_Guardar.extencion         = infoAdjunto.extensionArchivo;
                    Reg_a_Guardar.IdComprobante     = infoAdjunto.IdComprobante;
                    Reg_a_Guardar.IdEmpresa         = infoAdjunto.IdEmpresa;

                    conexion.mail_Mensaje_Archi_Adjunto.Add(Reg_a_Guardar);
                    conexion.SaveChanges();
                }
                return(true);
            }
            catch (Exception ex)
            {
                mensajeError = 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, mensajeError, "",
                                                                                          "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensajeError);
                return(false);
            }
        }
예제 #2
0
 public bool EmailGuardarArchivoAdjunto(mail_Mensaje_Archi_Adjunto_Info infoAdjunto, ref string mensajeError)
 {
     try
     {
         return(Odata.EmailGuardarArchivoAdjunto(infoAdjunto, ref mensajeError));
     }
     catch (Exception)
     {
         return(false);
     }
 }
        public List <mail_Mensaje_Archi_Adjunto_Info> Lista_ArchivoAdjunto_Mensaje_x_comprobante(Decimal idMensaje, ref string mensajeError)
        {
            try
            {
                List <mail_Mensaje_Archi_Adjunto_Info> Lista_ArchivoAdjunto = new List <mail_Mensaje_Archi_Adjunto_Info>();
                using (EntitiesFactElectronica conexion = new EntitiesFactElectronica())
                {
                    var registros = (from q in conexion.mail_Mensaje_Archi_Adjunto
                                     where q.IdMensaje == idMensaje &&
                                     q.IdComprobante != null &&
                                     q.IdComprobante != "" &&
                                     q.IdEmpresa > 0
                                     select q);
                    foreach (var item in registros)
                    {
                        mail_Mensaje_Archi_Adjunto_Info infoAdjunto = new mail_Mensaje_Archi_Adjunto_Info();
                        infoAdjunto.IdMensaje         = item.IdMensaje;
                        infoAdjunto.Secuencia         = item.Secuencia;
                        infoAdjunto.Archivo_adjunto   = item.Archivo_adjunto;
                        infoAdjunto.descripcion_archi = item.descripcion_archi;
                        infoAdjunto.extensionArchivo  = item.extencion;
                        infoAdjunto.IdComprobante     = item.IdComprobante;
                        infoAdjunto.IdEmpresa         = (item.IdEmpresa == null) ? 0 : Convert.ToInt32(item.IdEmpresa);


                        infoAdjunto.MosTrar_icono_Imprimir  = true;
                        infoAdjunto.MosTrar_icono_Descargar = true;

                        Lista_ArchivoAdjunto.Add(infoAdjunto);
                    }
                    return(Lista_ArchivoAdjunto);
                }
            }
            catch (Exception ex)
            {
                mensajeError = 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, mensajeError, "",
                                                                                          "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensajeError);
                return(new List <mail_Mensaje_Archi_Adjunto_Info>());
            }
        }
예제 #4
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());
            }
        }
예제 #5
0
        private void gridView_PDF_XML_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e)
        {
            try
            {
                mail_Mensaje_Archi_Adjunto_Info InfoAdjunto = new mail_Mensaje_Archi_Adjunto_Info();
                InfoAdjunto = (mail_Mensaje_Archi_Adjunto_Info)gridView_PDF_XML.GetFocusedRow();

                if (e.Column.Name == "colCheked")
                {
                    if ((bool)gridView_PDF_XML.GetFocusedRowCellValue(colCheked))
                    {
                        gridView_PDF_XML.SetFocusedRowCellValue(colCheked, false);
                    }
                    else
                    {
                        gridView_PDF_XML.SetFocusedRowCellValue(colCheked, true);
                    }
                }


                if (e.Column.Name == "colMosTrar_icono_Imprimir")
                {
                    if (InfoAdjunto.extensionArchivo == ".pdf")
                    {
                        string RutaFile = Path.GetTempPath();

                        RutaFile = RutaFile + "\\" + InfoAdjunto.descripcion_archi;
                        System.IO.File.WriteAllBytes(RutaFile, InfoAdjunto.Archivo_adjunto);

                        System.Diagnostics.Process proc = new System.Diagnostics.Process();

                        proc.StartInfo.FileName = RutaFile;
                        proc.Start();
                        proc.Close();
                    }

                    if (InfoAdjunto.extensionArchivo == ".Xml" || InfoAdjunto.extensionArchivo == ".xml")
                    {
                        string RutaFile = Path.GetTempPath();

                        RutaFile = RutaFile + "\\" + InfoAdjunto.descripcion_archi;

                        XmlDocument doc = new XmlDocument();
                        string      xml = Encoding.UTF8.GetString(InfoAdjunto.Archivo_adjunto);
                        doc.LoadXml(xml);
                        //doc.InnerXml


                        doc.Save(RutaFile);


                        System.Xml.XmlTextReader reader = new System.Xml.XmlTextReader(RutaFile);
                        string contenido = "";
                        while (reader.Read())
                        {
                            reader.MoveToContent();
                            if (reader.NodeType == System.Xml.XmlNodeType.Element)
                            {
                                contenido += "<" + reader.Name + ">\n";
                            }
                            if (reader.NodeType == System.Xml.XmlNodeType.Text)
                            {
                                contenido += reader.Value + "\n";
                            }
                        }

                        if (contenido != "")
                        {
                            frmMensaje_XML frmsg = new frmMensaje_XML();
                            frmsg.richTextBoxMensaje.Text = contenido;
                            frmsg.WindowState             = FormWindowState.Maximized;
                            frmsg.ShowDialog();
                        }
                    }
                }

                //Para Descargar

                if (e.Column.Name == "colMosTrar_icono_Descargar")
                {
                    if (InfoAdjunto.extensionArchivo == ".pdf")
                    {
                        //  Guardar archivo en ubicacion

                        SaveFileDialog sfd = new SaveFileDialog();
                        sfd.Title            = "Save As PDF";
                        sfd.Filter           = "(*.pdf)|*.pdf";
                        sfd.InitialDirectory = @"C:\";
                        sfd.FileName         = InfoAdjunto.descripcion_archi;
                        if (sfd.ShowDialog() == DialogResult.OK)
                        {
                            string RutaFile = "";

                            RutaFile = RutaFile + "\\" + InfoAdjunto.descripcion_archi;
                            System.IO.File.WriteAllBytes(sfd.FileName, InfoAdjunto.Archivo_adjunto);
                        }
                    }

                    if (InfoAdjunto.extensionArchivo == ".xml" || InfoAdjunto.extensionArchivo == ".Xml")
                    {
                        //  Guardar archivo en ubicacion

                        string xml = Encoding.UTF8.GetString(InfoAdjunto.Archivo_adjunto);

                        XmlDocument xmlOrigen = new XmlDocument();
                        xmlOrigen.Load(new StringReader(xml));

                        Stream         myStream;
                        SaveFileDialog saveFileDialog1 = new SaveFileDialog();

                        saveFileDialog1.Filter           = "xml files (*.xml)|*.xml";
                        saveFileDialog1.FilterIndex      = 2;
                        saveFileDialog1.RestoreDirectory = true;
                        saveFileDialog1.FileName         = InfoAdjunto.descripcion_archi;

                        if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                        {
                            if ((myStream = saveFileDialog1.OpenFile()) != null)
                            {
                                xmlOrigen.Save(myStream);
                                myStream.Close();
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
                BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString());
            }
        }
예제 #6
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());
            }
        }
예제 #7
0
        private void btn_Actualizar_Click(object sender, EventArgs e)
        {
            try
            {
                string mensajeError = "";

                if (listaMail.Count != 0)
                {
                    listaMensajes = new BindingList <mail_Mensaje_Info>();

                    foreach (var item in listaMail)
                    {
                        mail_Mensaje_Info info = new mail_Mensaje_Info();

                        //Para
                        conta = 0;
                        conta = item.To.ToList().Count();
                        sec   = 0;
                        foreach (var item2 in item.To)
                        {
                            sec = sec + 1;
                            if (sec != conta)
                            {
                                para += item2 + "; ";
                            }
                            else
                            {
                                para += item2;
                            }
                        }

                        //con copia
                        conta = 0;
                        conta = item.conCopia.ToList().Count();
                        sec   = 0;
                        foreach (var itemCopia in item.conCopia)
                        {
                            sec = sec + 1;
                            if (sec != conta)
                            {
                                CC += itemCopia + "; ";
                            }
                            else
                            {
                                CC += itemCopia;
                            }
                        }

                        info.Para    = para;
                        info.Para_CC = CC;
                        info.Fecha   = item.DateSent;
                        //info.Para = item.Para;
                        //  info.Para_CC = item.CC;
                        info.Asunto = item.Subject;
                        info.Asunto_texto_mostrado = item.Subject;

                        info.Tiene_Adjunto = item.Attachments.Count() == 0 ? false : true;

                        if (item.Prioridad == "Normal")
                        {
                            info.Prioridad = 0;
                        }
                        if (item.Prioridad == "Alta")
                        {
                            info.Prioridad = 1;
                        }
                        if (item.Prioridad == "Baja")
                        {
                            info.Prioridad = -1;
                        }

                        info.Leido         = false;
                        info.Respondido    = false;
                        info.No_Leido      = false;
                        info.Texto_mensaje = item.Texto_mensaje;
                        // info.mail_remitente = item.From;
                        // info.mail_remitente = dir_correo;
                        //  info.InfoContribuyente.Mail = correo;
                        info.mail_remitente = correo;
                        info.Eliminado      = false;
                        info.IdTipo_Mensaje = eTipoMail.Buzon_Ent;
                        info.codMensajeId   = item.MessageId;
                        // info.InfoContribuyente= null;
                        //info.InfoContribuyente.Mail = item.From;
                        info.IdCuenta = IdCuenta;

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

                            string nomAdju = itemAdju.FileName;

                            string extAdj = Path.GetExtension(nomAdju);
                            if (extAdj == ".pdf" || extAdj == ".xml")
                            {
                                infoAdju.extensionArchivo  = extAdj;
                                infoAdju.Archivo_adjunto   = itemAdju.Content;
                                infoAdju.descripcion_archi = itemAdju.FileName;

                                info.list_Archivos_Adjuntos.Add(infoAdju);
                            }
                        }

                        listaMensajes.Add(info);
                    }
                }

                foreach (var item in listaMensajes)
                {
                    if (Bus_Mensaje.GrabarMensajeDB(item, ref mensajeError))
                    {
                    }
                }

                // consultar los nuevos correos
                mostrar_mensajes(eTipoMail.Buzon_Ent, correo);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
예제 #8
0
        private void LoadMails()
        {
            try
            {
                string mailFolder = String.Format("{0}\\inbox", m_curpath);
                if (!Directory.Exists(mailFolder))
                {
                    Directory.CreateDirectory(mailFolder);
                }

                string[] files = Directory.GetFiles(mailFolder, "*.eml");
                int      count = files.Length;
                for (int i = 0; i < count; i++)
                {
                    string fullname = files[i];
                    // 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.

                    Mail oMail = new Mail("EG-B1374632949-00215-D3BEB6416TE2E729-A84ADDF9C5A1C85F");

                    // Carga (archivo, true) sólo cargar el encabezado del correo electrónico a Correo objeto de salvar la CPU y la memoria
                    // El objeto Correo cargará el archivo de correo electrónico entera tarde de forma automática si se requiere bodyText o apego ..

                    oMail.Load(fullname, true);

                    //llenar grid

                    int    conta     = oMail.Headers.Count;
                    string MessageID = "";
                    for (int y = 0; y < conta; y++)
                    {
                        if (y == 17)
                        {
                            MessageID = oMail.Headers[y].ToString();
                            break;
                        }
                    }

                    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;
                        }
                    }

                    infoMensaje        = new mail_Mensaje_Info();
                    infoMensaje.Asunto = oMail.Subject;
                    infoMensaje.Asunto_texto_mostrado = oMail.Subject;
                    infoMensaje.codMensajeId          = MessageID;
                    infoMensaje.fileName      = fullname;
                    infoMensaje.Para          = para;
                    infoMensaje.Para_CC       = CC;
                    infoMensaje.Fecha         = oMail.ReceivedDate;
                    infoMensaje.Texto_mensaje = oMail.TextBody;

                    infoMensaje.Tiene_Adjunto = oMail.Attachments.ToList().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 = correo;
                    infoMensaje.Eliminado      = false;
                    infoMensaje.IdTipo_Mensaje = eTipoMail.Buzon_Ent;


                    infoMensaje.IdCuenta = IdCuenta;

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

                        string nomAdju = itemAdju.Name;

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

                            infoMensaje.list_Archivos_Adjuntos.Add(infoAdju);
                        }
                    }

                    lista_Mensaje.Add(infoMensaje);

                    gridControl_Correo.DataSource = lista_Mensaje;
                    //llenar grid


                    int    pos      = fullname.LastIndexOf(".");
                    string mainName = fullname.Substring(0, pos);
                    string htmlName = mainName + ".htm";
                    if (!File.Exists(htmlName))
                    {
                        // Este mensaje está sin leer, fijamos el estilo de fuente en negrita.
                        // item.Font = new System.Drawing.Font(item.Font, FontStyle.Bold);
                    }

                    oMail.Clear();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
                BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString());
            }
        }
예제 #9
0
        private void btnStart_Click(object sender, EventArgs e)
        {
            try
            {
                string server, user, password;
                //server = textServer.Text.Trim();
                //user = textUser.Text.Trim();
                //password = textPassword.Text.Trim();

                server   = "mail.it-corp.com";
                user     = "******";
                password = "******";

                //user = "******";
                //password = "******";

                if (server.Length == 0 || user.Length == 0 || password.Length == 0)
                {
                    MessageBox.Show("Por favor ingrese servidor, usuario y contraseña.");
                    return;
                }

                btnStart.Enabled  = false;
                btnCancel.Enabled = true;

                ServerAuthType authType = ServerAuthType.AuthLogin;
                if (lstAuthType.SelectedIndex == 1)
                {
                    authType = ServerAuthType.AuthCRAM5;
                }
                else if (lstAuthType.SelectedIndex == 2)
                {
                    authType = ServerAuthType.AuthNTLM;
                }

                ServerProtocol protocol = (ServerProtocol)lstProtocol.SelectedIndex;

                MailServer oServer = new MailServer(server, user, password,
                                                    chkSSL.Checked, 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 bLeaveCopy = chkLeaveCopy.Checked;

                // UIDL es el identificador de cada correo electrónico de POP3 / IMAP4 / servidor de Exchange, para evitar recuperar
                // El mismo correo electrónico desde el servidor más de una vez, que registra el email UIDL recuperada cada vez
                // Si elimina el correo electrónico desde el servidor cada vez y no dejar una copia del correo electrónico en
                // El servidor, por favor, elimine toda la función sobre uidl.
                // UIDLManager envuelve la función de escribir / leer el registro uidl desde un archivo de texto.

                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 = "Connecting ...";
                    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>();
                    }

                    for (int i = 0; i < count; i++)
                    {
                        MailInfo info = infos[i];

                        //verificar en base
                        if (Bus_Mensaje.Verifica_codMensajeId(info.UIDL) == false)
                        {
                            //}
                            //if (oUIDLManager.FindUIDL(oServer, info.UIDL) != null /*&& "si esta en base"|| oUIDLManager.FindUIDL(oServer, info.UIDL) == null && "si esta en base"*/ )
                            //{
                            //    // este correo electrónico se ha descargado antes.
                            //    continue;
                            //}

                            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);
                            oMail.SaveAs(fileName, true);

                            //llenar grid

                            //int conta = oMail.Headers.Count;
                            //string MessageID = "";
                            //for (int y = 0; y < conta; y++)
                            //{

                            //        string valida = "Message-ID";
                            //        string extrae = oMail.Headers[y].ToString().Substring(0, 10);

                            //        string result = "";
                            //        if (extrae == valida)
                            //        {
                            //            MessageID = oMail.Headers[y].ToString();
                            //            break;
                            //        }

                            //       // break;
                            //}

                            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;
                                }
                            }

                            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 = 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 == ".pdf" || extAdj == ".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);

                            lista_Mensaje.Add(infoMensaje);


                            gridControl_Correo.DataSource = lista_Mensaje;

                            gridControl_Correo.RefreshDataSource();

                            oMail.Clear();

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

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

                    if (!bLeaveCopy)
                    {
                        lblStatus.Text = "Deleting ...";
                        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");
                        return;
                    }
                }
                catch (Exception ex)
                {
                    BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString());
                    MessageBox.Show(ex.Message.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;
                btnStart.Enabled  = true;
                btnCancel.Enabled = false;
            }
            catch (Exception ex)
            {
                BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString());
                MessageBox.Show(ex.Message.ToString());
            }
        }
예제 #10
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)
            {
            }
        }