Пример #1
0
        /// <summary>
        /// Retorna el ACK de estado de los certificados de un sobre recibido
        /// </summary>
        /// <param name="token"></param>
        /// <param name="idRespuesta"></param>
        /// <returns></returns>
        public void ObtenerEstadoCFE(string token, string idRespuesta, string destinatario, string nombreArchivoEntrada)
        {
            string xmlACK;
            string nombreArchivo;

            try
            {
                ArrayList listaCertificados = manteUdoSobreRecibido.ConsultarCFEProcesado(token, idRespuesta);

                if (listaCertificados.Count > 0)
                {
                    foreach (CertificadosRecProcesados certificadoRecProcesado in listaCertificados)
                    {
                        certificadoRecProcesado.MotivosRechazo = manteUdoEstadoSobreRecibido.ConsultarCFEProcesado(certificadoRecProcesado.DocEntry);
                    }

                    xmlACK  = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
                    xmlACK += "<ACKCFE xmlns=\"http://cfe.dgi.gub.uy\" version=\"1.0\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">";

                    xmlACK += ObtenerTagCaratula(idRespuesta, listaCertificados, nombreArchivoEntrada);
                    xmlACK += ObtenerTagCertificados(listaCertificados);

                    xmlACK += "</ACKCFE>";

                    ObtenerFirmaDigital();

                    nombreArchivo = ObtenerNombre(idRespuesta);
                    ProcTransformacion.GuardarACKCertificadoPrevio(nombreArchivo, xmlACK);
                    ProcTransformacion.FirmarACKCertificado(RUTA_CERTIFICADO, nombreArchivo, CLAVE_CERTIFICADO);

                    ManteUdoCorreos manteUdo = new ManteUdoCorreos();
                    Correo          correo   = manteUdo.Consultar();

                    if (correo != null)
                    {
                        string[] adjuntos = new string[1];
                        //Se agregan las rutas de los archivos adjuntos
                        adjuntos[0] = RutasCarpetas.RutaCarpetaACKCFEReceptor + nombreArchivo + ".xml";

                        Mail mail = new Mail(destinatario, correo.Cuenta, Mensaje.cACKAsunto,
                                             Mensaje.cACKMensaje, Mensaje.pdfServidorGmail, correo.Cuenta, correo.Clave, adjuntos, 587);

                        //Envia correo con acuse de respuesta
                        if (mail.enviarCorreoGmail())
                        {
                            if (!adjuntos[0].Equals(""))
                            {
                                //Borra el archivo de sobre copiado para enviar en el correo
                                System.IO.File.Delete(adjuntos[0]);
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
                //SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("RespuestaConsultaCFE/Error: " + ex.ToString());
            }
        }
Пример #2
0
        /// <summary>
        /// Metodo que crea un hilo para descargar los adjuntos de la bandeja de entrada
        /// de la cuenta electronica configurada en el envio de correos
        /// </summary>
        public void descargaContinua()
        {
            ManteUdoCorreos mantenimiento = new ManteUdoCorreos();
            //Se consulta la tabla de correos
            Correo correo = mantenimiento.Consultar();

            if (correo != null)
            {
                //Crea o valida la existencia de la carpeta para almacenar los archivos bajados
                RutasCarpetas rutasCarpetas = new RutasCarpetas();
                rutasCarpetas.generarCarpetas();

                Thread threadBandejaEntrada = null;

                //Si es una cuenta de Gmail
                if (correo.Opcion.Equals("0"))
                {
                    //Se crea una instancia para cuentas de gmail
                    Mail bandeja = new Mail(correo.Cuenta, correo.Cuenta, "",
                                            "", Mensaje.pdfServidorGmail, correo.Cuenta, correo.Clave, null, 587);
                    //Se define el hilo
                    threadBandejaEntrada = new Thread(bandeja.bandejaEntradaGmail);
                    //Se pone como background para que se muera cuando se cierra la aplicacion
                    threadBandejaEntrada.IsBackground = true;
                    //Inicia el hilo
                    threadBandejaEntrada.Start();
                }
                //Si es una cuenta de Outlook
                else if (correo.Opcion.Equals("1"))
                {
                    //Se crea una instancia para cuentas de Outlook
                    Mail bandeja = new Mail("", "", "", null);
                    //Se define el hilo
                    threadBandejaEntrada = new Thread(bandeja.bandejaEntradaOutlook);
                    //Se pone como background para que se muera cuando se cierra la aplicacion
                    threadBandejaEntrada.IsBackground = true;
                    //Se inicia el hilo
                    threadBandejaEntrada.Start();
                }
            }
        }
Пример #3
0
        /// <summary>
        /// Metodo para llenar los campos de texto y los radio buttons
        /// </summary>
        /// <param name="comp"></param>
        private void LlenarDatos()
        {
            ManteUdoCorreos mantenimiento = new ManteUdoCorreos();
            Correo          correo        = mantenimiento.Consultar();

            if (correo != null)
            {
                EditText txtCorreo = (EditText)Formulario.Items.Item("txtCorreo").Specific;
                txtCorreo.Value = correo.Cuenta;

                if (correo.Opcion.Equals("0"))
                {
                    OptionBtn oBGmail = (OptionBtn)Formulario.Items.Item("rbGmail").Specific;
                    oBGmail.Selected = true;
                }
                else
                {
                    OptionBtn oBOutlook = (OptionBtn)Formulario.Items.Item("rbOutlook").Specific;
                    oBOutlook.Selected = true;
                }
            }
        }
Пример #4
0
        /// <summary>
        /// Determina que tipo de cuentas de correo utilizar
        /// </summary>
        /// <returns></returns>
        public bool TipoCorreo(bool estadoAdenda)
        {
            bool resultado = false;

            try
            {
                //Se obtiene credenciales para el envio del correo
                ManteUdoCorreos manteUdo = new ManteUdoCorreos();
                Correo          correo   = manteUdo.Consultar();

                if (correo != null)
                {
                    string[] adjuntos = new string[2];//2

                    //Se agregan las rutas de los archivos adjuntos
                    adjuntos[0] = RutasCarpetas.RutaCarpetaComprobantes + nombreCompuesto + Mensaje.pdfExt;
                    if (estadoAdenda)
                    {
                        adjuntos[1] = CambiarNombre(RutasCarpetas.RutaCarpetaSobresComprobantesAdenda + nombreCompuesto + ".xml");
                    }
                    else
                    {
                        adjuntos[1] = CambiarNombre(RutasCarpetas.RutaCarpetaSobres + nombreCompuesto + ".xml");
                    }

                    //0 == Gmail
                    if (correo.Opcion.Equals("0"))
                    {
                        ///Envia correo con una cuenta de gmail
                        Mail mail = new Mail(infoComprobante.CorreoReceptor, correo.Cuenta, nombreCompuesto,
                                             Mensaje.pdfContenido, Mensaje.pdfServidorGmail, correo.Cuenta, correo.Clave, adjuntos, 587);
                        if (mail.enviarCorreoGmail())
                        {
                            if (!adjuntos[1].Equals(""))
                            {
                                //Borra el archivo de sobre copiado para enviar en el correo
                                System.IO.File.Delete(adjuntos[1]);
                            }
                            resultado = true;
                        }
                        else
                        {
                            erroCorreo = Mail.errorCorreo;
                        }
                    }
                    //1 == Outlook
                    else if (correo.Opcion.Equals("1"))
                    {
                        ///Envia correo con una cuenta de outlook
                        Mail mail = new Mail(infoComprobante.CorreoReceptor, Mensaje.pdfAsunto, Mensaje.pdfContenido, adjuntos);
                        if (mail.enviarOutlook())
                        {
                            if (!adjuntos[1].Equals(""))
                            {
                                //Borra el archivo de sobre copiado para enviar en el correo
                                System.IO.File.Delete(adjuntos[1]);
                            }
                            resultado = true;
                        }
                        else
                        {
                            erroCorreo = Mail.errorCorreo;
                        }
                    }
                }
                else
                {
                    erroCorreo = Mensaje.errCorreoDatosConfigurados;
                }
            }
            catch (Exception)
            {
            }

            return(resultado);
        }
Пример #5
0
        /// <summary>
        /// Metodo que obtiene descarga los archivos adjuntos de
        /// los correos no leido y los marca como leido de la
        /// bandeja de entrada de Gmail
        /// </summary>
        /// <returns></returns>
        public void bandejaEntradaGmail()
        {
            while (!detenerHilo)
            {
                try
                {
                    //Se obtiene informacion de cuenta de correo
                    ManteUdoCorreos manteUdo = new ManteUdoCorreos();
                    Correo          correo   = manteUdo.Consultar();

                    string     clave = correo.Clave, usuario = correo.Cuenta;
                    ImapClient cliente = new ImapClient();

                    //Se conecta con el servidor
                    if (cliente.Connect(Mensaje.cliGmail, true))
                    {
                        //Se loguea con el usuario y la clave
                        cliente.Login(usuario, clave);

                        //Se obtiene la carpeta de bandeja de entrada
                        ImapX.Collections.FolderCollection folder = cliente.Folders;
                        ImapX.Folder buzonEntrada = cliente.Folders.Inbox;

                        //Se obtiene los mensajes no leidos
                        ImapX.Message[] mensajes = buzonEntrada.Search("UNSEEN", ImapX.Enums.MessageFetchMode.Full);

                        //Se recorren la lista de mensajes obtenidos
                        foreach (ImapX.Message mensaje in mensajes)
                        {
                            //Se obtienen los archivos adjuntos
                            foreach (var archivo in mensaje.Attachments)
                            {
                                //Se comprueba que sea un archivo xml
                                if (ValidarXmlSobre(archivo.FileName))
                                {
                                    mensaje.Seen = true;
                                    //Se descargan los archivos adjuntos
                                    archivo.Download();
                                    archivo.Save(RutasCarpetas.RutaCarpetaBandejaEntrada);
                                    string desde = mensaje.From.ToString();

                                    //Se guarda en la tabla de sobres Recibidos
                                    respuestaSobre.GenerarXML(RutasCarpetas.RutaCarpetaBandejaEntrada, archivo.FileName, desde);
                                }
                                //Se comprueba que sea un ACK
                                else if (ValidarXmlACKSobre(archivo.FileName))
                                {
                                    archivo.Download();
                                    archivo.Save(RutasCarpetas.RutaCarpetaBandejaEntrada);
                                    mensaje.Seen = true;

                                    //Obtiene datos del sobre de un ACK xml
                                    SobreTransito sobreTransito = ObtenerSobreTransito(archivo.FileName, mensaje.From.ToString());

                                    //Guarda los datos en la tabla TFEST(Sobre en transito)
                                    ManteUdoSobreTransito manteSobreTransito = new ManteUdoSobreTransito();
                                    manteSobreTransito.Almacenar(sobreTransito);
                                }
                                //else if (ValidarXmlACKCFE(archivo.FileName))
                                //{
                                //    archivo.Save(RutasCarpetas.RutaCarpetaAcuseRecibidoCertificado);
                                //    mensaje.Seen = true;

                                //    RespuestaCertificados respuestaCFE = new RespuestaCertificados();
                                //    respuestaCFE.ProcesarRespuesta(archivo.FileName, CFE.ESTipoReceptor.Receptor);

                                //}
                                //else
                                //{
                                //    archivo.Save(RutasCarpetas.RutaCarpetaConsultaEstado);
                                //    mensaje.Seen = true;

                                //    RespuestaConsultaCFE respuestaConsultaCfe = new RespuestaConsultaCFE();
                                //    SobreTransito sobreTransito = respuestaConsultaCfe.ValidarContenidoConsulta(archivo.FileName);

                                //    if (sobreTransito != null)
                                //    {
                                //        respuestaConsultaCfe.ObtenerEstadoCFE(sobreTransito.Token, sobreTransito.IdReceptor, mensaje.From.ToString(), archivo.FileName);
                                //    }
                                //}
                            }
                        }

                        //Se cierra sesion
                        cliente.Logout();
                        //Se desconecta del servidor
                        cliente.Disconnect();
                        //Se libera el objeto
                        cliente.Dispose();
                    }
                }
                catch (Exception)
                {
                    //SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("Mail/BandejaEntradaGmail/Error: " + ex.ToString());
                }

                finally

                {
                    Thread.Sleep(30000);
                }
            }
        }
Пример #6
0
        /// <summary>
        /// Determina que tipo de cuentas de correo utilizar
        /// </summary>
        /// <returns></returns>
        public bool tipoCorreo(string nombreCompuesto, string correoReceptor)
        {
            bool resultado = false;

            try
            {
                //Se obtiene credenciales para el envio del correo
                ManteUdoCorreos manteUdo = new ManteUdoCorreos();
                Correo          correo   = manteUdo.Consultar();

                if (correo != null)
                {
                    string[] adjuntos = new string[2];

                    PDFs pdf = new PDFs();

                    //FTP ftp = new FTP();

                    //ftp.descargarArchivos(nombreCompuesto + Mensaje.pdfExt, RutasCarpetas.RutaCarpetaAdjuntos, 6);
                    //ftp.EliminarFTP(6, nombreCompuesto + Mensaje.pdfExt);

                    //Se agregan las rutas de los archivos adjuntos
                    adjuntos[0] = RutasCarpetas.RutaCarpetaContingenciaComprobantes + nombreCompuesto + Mensaje.pdfExt;
                    if (ValidarAdenda(nombreCompuesto + ".xml"))
                    {
                        adjuntos[1] = RutasCarpetas.RutaCarpetaContingenciaSobresAdenda + nombreCompuesto + ".xml";
                        System.IO.File.Copy(RutasCarpetas.RutaCarpetaContingenciaSobresAdenda + nombreCompuesto + ".xml", RutasCarpetas.RutaCarpetaSobresComprobantesAdenda + nombreCompuesto + ".xml", true);
                        System.IO.File.Copy(RutasCarpetas.RutaCarpetaContingenciaSobres + nombreCompuesto + ".xml", RutasCarpetas.RutaCarpetaSobres + nombreCompuesto + ".xml", true);
                    }
                    else
                    {
                        adjuntos[1] = RutasCarpetas.RutaCarpetaContingenciaSobres + nombreCompuesto + ".xml";
                        System.IO.File.Copy(RutasCarpetas.RutaCarpetaContingenciaSobres + nombreCompuesto + ".xml", RutasCarpetas.RutaCarpetaSobres + nombreCompuesto + ".xml", true);
                    }

                    System.IO.File.Copy(RutasCarpetas.RutaCarpetaContingenciaSobresDgi + nombreCompuesto + ".xml", RutasCarpetas.RutaCarpetaSobresDgi + nombreCompuesto + ".xml", true);
                    System.IO.File.Delete(RutasCarpetas.RutaCarpetaContingenciaSobresDgi + nombreCompuesto + ".xml");
                    //adjuntos[1] = pdf.cambiarNombre(RutasCarpetas.RutaCarpetaSobresTemporales + nombreCompuesto + ".xml");

                    //System.IO.File.Copy(RutasCarpetas.RutaCarpetaContingenciaComprobantes + nombreCompuesto + Mensaje.pdfExt, RutasCarpetas.RutaCarpetaComprobantes + nombreCompuesto + Mensaje.pdfExt, true);

                    //0 == Gmail
                    if (correo.Opcion.Equals("0"))
                    {
                        ///Envia correo con una cuenta de gmail
                        Mail mail = new Mail(correoReceptor, correo.Cuenta, nombreCompuesto,
                                             Mensaje.pdfContenido, Mensaje.pdfServidorGmail, correo.Cuenta, correo.Clave, adjuntos, 587);
                        if (mail.enviarCorreoGmail())
                        {
                            if (!adjuntos[0].Equals(""))
                            {
                                //Borra el archivo de sobre copiado para enviar en el correo
                                System.IO.File.Delete(adjuntos[0]);
                            }
                            if (!adjuntos[1].Equals(""))
                            {
                                //Borra el archivo de sobre copiado para enviar en el correo
                                System.IO.File.Delete(adjuntos[1]);
                            }
                            resultado = true;
                        }
                    }
                    //1 == Outlook
                    else if (correo.Opcion.Equals("1"))
                    {
                        ///Envia correo con una cuenta de outlook
                        Mail mail = new Mail(correoReceptor, Mensaje.pdfAsunto, Mensaje.pdfContenido, adjuntos);
                        if (mail.enviarOutlook())
                        {
                            if (!adjuntos[0].Equals(""))
                            {
                                //Borra el archivo de sobre copiado para enviar en el correo
                                System.IO.File.Delete(adjuntos[1]);
                            }
                            if (!adjuntos[1].Equals(""))
                            {
                                //Borra el archivo de sobre copiado para enviar en el correo
                                System.IO.File.Delete(adjuntos[1]);
                            }
                            resultado = true;
                        }
                    }
                }
            }
            catch (Exception)
            {
            }

            return(resultado);
        }
Пример #7
0
        /// <summary>
        /// Metodo que genera el Acuse de Recibo
        /// </summary>
        public string GenerarACK(string estado, CertificadoRecibido sobreRecibido, string correoEmisor, List <ErrorValidarSobre> listaErrores, string nombreSobre)
        {
            ValidarSobre validaSobre = new ValidarSobre();

            //Se crea objeto de tipo Consecutivo
            Consecutivo   consecutivo = new Consecutivo();
            XmlTextWriter writer = null;
            string        nombreACK = "", nombreACKF = "";
            DateTime      fechaActual;

            try
            {
                //Genera el idReceptor para el ACK
                consecutivo.IdReceptor = validaSobre.generarIdReceptor();
                //Genera el TokenBinario para el ACK
                consecutivo.Token = validaSobre.generarTokenBinario(consecutivo.IdReceptor);

                ManteUdoConsecutivo manteConsecutivo = new ManteUdoConsecutivo();
                //Inserta en la tabla TFECONS el nuevo registro de consecutivo
                manteConsecutivo.Almacenar(consecutivo);

                //Obtiene la fecha actual
                fechaActual = DateTime.Now;
                //Formatea fecha de modo: YYYYMMDD
                string fechaFormateada = String.Format("{0:yyyyMMdd}", fechaActual);

                //Nombre del ACK segun formato de DGI
                nombreACK = "M_" + consecutivo.IdReceptor + "_Sob_" + sobreRecibido.RucEmisor + "_" + fechaFormateada + "_" + sobreRecibido.IdEmisor + "sf" + ".xml";
                //Nombre del ACK firmado digitalmente
                nombreACKF = "M_" + consecutivo.IdReceptor + "_Sob_" + sobreRecibido.RucEmisor + "_" + fechaFormateada + "_" + sobreRecibido.IdEmisor + ".xml";

                writer            = new XmlTextWriter(RutasCarpetas.RutaCarpetaAcuseRecibidoSobre + nombreACK, Encoding.UTF8);
                writer.Formatting = Formatting.Indented;

                //Empieza el documento ACKSOBRE
                writer.WriteStartDocument();

                //Agrega el primer elemento y el namespace
                writer.WriteStartElement("ACKSobre");
                writer.WriteAttributeString("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
                writer.WriteAttributeString("xmlns:xsd", "http://www.w3.org/2001/XMLSchema");
                writer.WriteAttributeString("version", "1.0");
                writer.WriteAttributeString("xmlns", "http://cfe.dgi.gub.uy");

                //Empieza el Tag de Caratula
                writer.WriteStartElement("Caratula");
                writer.WriteElementString("RUCReceptor", sobreRecibido.RucReceptor);
                writer.WriteElementString("RUCEmisor", sobreRecibido.RucEmisor);
                writer.WriteElementString("IDRespuesta", consecutivo.IdReceptor);
                writer.WriteElementString("NomArch", nombreSobre.ToLower());
                writer.WriteElementString("FecHRecibido", sobreRecibido.FechaSobre);
                writer.WriteElementString("IDEmisor", sobreRecibido.IdEmisor);
                writer.WriteElementString("IDReceptor", consecutivo.IdReceptor);
                writer.WriteElementString("CantidadCFE", sobreRecibido.CantCFE);
                writer.WriteElementString("Tmst", sobreRecibido.FechaEmision);

                //Termina el Tag de Caratula
                writer.WriteEndElement();

                //Empieza el Tag de Detalle
                writer.WriteStartElement("Detalle");
                writer.WriteElementString("Estado", estado);
                //Caso sobre rechazado
                if (estado.Equals("BS"))
                {
                    //Empieza el Tag de MotivosRechazo
                    writer.WriteStartElement("MotivosRechazo");
                    foreach (ErrorValidarSobre error in listaErrores)
                    {
                        writer.WriteElementString("Motivo", error.CodigoRechazo);
                        writer.WriteElementString("Glosa", error.GlosaRechazo);
                    }
                    //Termina el Tag de MotivosRechazo
                    writer.WriteEndElement();
                }
                //Caso sobre Aceptado
                else if (estado.Equals("AS"))
                {
                    //Empieza el Tag de ParamConsulta
                    writer.WriteStartElement("ParamConsulta");
                    writer.WriteElementString("Token", consecutivo.Token);

                    fechaFormateada = String.Format("{0:yyyy-MM-dd H:mm:ss}", fechaActual);

                    writer.WriteElementString("Fechahora", fechaFormateada);

                    //Termina el Tag de ParamConsulta
                    writer.WriteEndElement();
                }
                //Termina el Tag de Detalle
                writer.WriteEndElement();

                //Termina el Tag de ACKSobre
                writer.WriteEndElement();

                //Termina el documento SOBREACK
                writer.WriteEndDocument();

                //Envia el contenido al documento
                writer.Flush();

                //Cierra el documento
                writer.Close();

                FirmaDigital firma = new FirmaDigital();

                //Procede a intentar firmar el xml del ACK
                if (firma.FirmarACK(RutasCarpetas.RutaCarpetaAcuseRecibidoSobre + nombreACK,
                                    RutasCarpetas.RutaCarpetaAcuseRecibidoSobre + nombreACKF))
                {
                    if (!nombreACK.Equals(""))
                    {
                        //Borra el ACK generado
                        System.IO.File.Delete(RutasCarpetas.RutaCarpetaAcuseRecibidoSobre + nombreACK);

                        //Instancia para obtener datos de cuenta de correo electronico
                        ManteUdoCorreos mante  = new ManteUdoCorreos();
                        Correo          correo = mante.Consultar();

                        string[] adjuntos = new string[1];
                        adjuntos[0] = RutasCarpetas.RutaCarpetaAcuseRecibidoSobre + nombreACKF;

                        if (correo != null)
                        {
                            ///Envia correo con una cuenta de gmail
                            Mail mail = new Mail(correoEmisor, correo.Cuenta, Mensaje.cACKAsunto,
                                                 Mensaje.cACKMensaje, Mensaje.pdfServidorGmail, correo.Cuenta, correo.Clave, adjuntos, 587);
                            mail.enviarCorreoGmail();
                        }
                    }
                }
                else
                {
                    //Borra el ACK firmado
                    System.IO.File.Delete(RutasCarpetas.RutaCarpetaAcuseRecibidoSobre + nombreACK);
                }
            }
            catch (Exception)
            {
                if (!nombreACK.Equals(""))
                {
                    //Borra el ACK generado
                    System.IO.File.Delete(RutasCarpetas.RutaCarpetaAcuseRecibidoSobre + nombreACK);
                }

                //SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("RespuestaSobre/Error: " + ex.ToString());
            }
            finally
            {
                //Cierre de documento
                writer.Close();
            }

            return(consecutivo.IdReceptor);
        }
Пример #8
0
        /// <summary>
        /// Determina que tipo de cuentas de correo utilizar
        /// </summary>
        /// <returns></returns>
        public bool TipoCorreo(DatosCorreo datosCorreo)
        {
            bool resultado = false;

            string contenido = datosCorreo.NombreEmisor + " - " + Mensaje.pdfContenido;
            string asunto    = datosCorreo.NombreEmisor + " " + datosCorreo.TipoCFE + " " + datosCorreo.NombreCompuesto;
            string emisor    = datosCorreo.NombreEmisor + "<{0}>";

            try
            {
                //Se obtiene credenciales para el envio del correo
                ManteUdoCorreos manteUdo = new ManteUdoCorreos();
                Correo          correo   = manteUdo.Consultar();

                if (correo != null)
                {
                    emisor = String.Format(emisor, correo.Cuenta);

                    string[] adjuntos = new string[2];//2

                    //Se agregan las rutas de los archivos adjuntos
                    adjuntos[0] = RutasCarpetas.RutaCarpetaComprobantes + datosCorreo.NombreCompuesto + Mensaje.pdfExt;
                    if (datosCorreo.EstadoAdenda)
                    {
                        adjuntos[1] = CambiarNombre(RutasCarpetas.RutaCarpetaSobresComprobantesAdenda + datosCorreo.NombreCompuesto + ".xml", datosCorreo.NombreCompuesto + ".xml");
                    }
                    else
                    {
                        adjuntos[1] = CambiarNombre(RutasCarpetas.RutaCarpetaSobres + datosCorreo.NombreCompuesto + ".xml", datosCorreo.NombreCompuesto + ".xml");
                    }

                    //0 == Gmail
                    if (correo.Opcion.Equals("0"))
                    {
                        if (!adjuntos[1].Equals(""))
                        {
                            ///Envia correo con una cuenta de gmail

                            /*Mail mail = new Mail(datosCorreo.CorreoReceptor, correo.Cuenta, datosCorreo.NombreCompuesto,
                            *    Mensaje.pdfContenido, Mensaje.pdfServidorGmail, correo.Cuenta, correo.Clave, adjuntos, 587);*/
                            Mail mail = new Mail(datosCorreo.CorreoReceptor, emisor, asunto, contenido, Mensaje.pdfServidorGmail, correo.Cuenta, correo.Clave, adjuntos, 587);
                            if (mail.enviarCorreoGmail())
                            {
                                if (!adjuntos[1].Equals(""))
                                {
                                    //Borra el archivo de sobre copiado para enviar en el correo
                                    System.IO.File.Delete(adjuntos[1]);
                                }
                                resultado = true;
                            }
                        }
                    }
                    //1 == Outlook
                    else if (correo.Opcion.Equals("1"))
                    {
                        if (!adjuntos[1].Equals(""))
                        {
                            ///Envia correo con una cuenta de outlook
                            //Mail mail = new Mail(datosCorreo.CorreoReceptor, Mensaje.pdfAsunto, Mensaje.pdfContenido, adjuntos);
                            Mail mail = new Mail(datosCorreo.CorreoReceptor, asunto, contenido, adjuntos);
                            if (mail.enviarOutlook())
                            {
                                if (!adjuntos[1].Equals(""))
                                {
                                    //Borra el archivo de sobre copiado para enviar en el correo
                                    System.IO.File.Delete(adjuntos[1]);
                                }
                                resultado = true;
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
            }

            return(resultado);
        }
Пример #9
0
        /// <summary>
        /// Determina que tipo de cuentas de correo utilizar
        /// </summary>
        /// <returns></returns>
        public bool tipoCorreo(SobreTransito sobreTransito)
        {
            bool resultado = false;

            try
            {
                //Se obtiene credenciales para el envio del correo
                ManteUdoCorreos manteUdo = new ManteUdoCorreos();
                Correo          correo   = manteUdo.Consultar();

                if (correo != null)
                {
                    string[] adjuntos = new string[1];

                    //Se agregan las rutas de los archivos adjuntos
                    adjuntos[0] = RutasCarpetas.RutaCarpetaACKSobreReceptor + sobreTransito.NombreSobre + ".xml";
                    string mensaje = "Datos para Consulta de Estado de CFEs" + Environment.NewLine
                                     + "<ACKReceptor>" + Environment.NewLine
                                     + "    <Token> " + sobreTransito.Token + "</Token>" + Environment.NewLine
                                     + "    <IdReceptor> " + sobreTransito.IdReceptor + "</IdReceptor>" + Environment.NewLine
                                     + "</ACKReceptor>" + Environment.NewLine
                                     + "Saludos";

                    //0 == Gmail
                    if (correo.Opcion.Equals("0"))
                    {
                        ///Envia correo con una cuenta de gmail
                        Mail mail = new Mail(sobreTransito.CorreoReceptor, correo.Cuenta, Mensaje.ACKAsunto,
                                             mensaje, Mensaje.pdfServidorGmail, correo.Cuenta, correo.Clave, adjuntos, 587);
                        if (mail.enviarCorreoGmail())
                        {
                            if (!adjuntos[0].Equals(""))
                            {
                                //Borra el archivo de sobre copiado para enviar en el correo
                                System.IO.File.Delete(adjuntos[0]);
                            }
                            resultado = true;
                        }
                    }
                    //1 == Outlook
                    else if (correo.Opcion.Equals("0"))
                    {
                        ///Envia correo con una cuenta de outlook
                        Mail mail = new Mail(sobreTransito.CorreoReceptor, Mensaje.ACKAsunto, mensaje, adjuntos);
                        if (mail.enviarOutlook())
                        {
                            if (!adjuntos[1].Equals(""))
                            {
                                //Borra el archivo de sobre copiado para enviar en el correo
                                System.IO.File.Delete(adjuntos[0]);
                            }
                            resultado = true;
                        }
                    }
                }
            }
            catch (Exception)
            {
            }

            return(resultado);
        }