/// <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()); } }
/// <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(); } } }
/// <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; } } }
/// <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); }
/// <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); } } }
/// <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); }
/// <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); }
/// <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); }
/// <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); }