private Boolean EnviarArchivo(String prefijoNombreArchivo, SeccionEnvio seccion, Dictionary<String, byte[]> listaArchivos) { String archiveName; if(seccion == SeccionEnvio.Seleccion) { archiveName = String.Format(prefijoNombreArchivo + "DOCUMENTACION_SELECCION_{0}.zip", DateTime.Now.ToString("yyyy-MMM-dd")); } else { archiveName = String.Format(prefijoNombreArchivo + "DOCUMENTACION_CONTRATACION_{0}.zip", DateTime.Now.ToString("yyyy-MMM-dd")); } MemoryStream streamArchivoAEnviar = new MemoryStream(); ZipOutputStream s = new ZipOutputStream(streamArchivoAEnviar); s.SetLevel(9); foreach (KeyValuePair<String, byte[]> archivo in listaArchivos) { ZipEntry entry = new ZipEntry(archivo.Key); entry.DateTime = DateTime.Now; s.PutNextEntry(entry); s.Write(archivo.Value, 0, (int)archivo.Value.Length); } StreamReader archivo_mensaje_correo = new StreamReader(Server.MapPath(@"~\plantillas_reportes\email_envio_docs_trabajador.htm")); String html_mensaje_correo = archivo_mensaje_correo.ReadToEnd(); archivo_mensaje_correo.Dispose(); archivo_mensaje_correo.Close(); html_mensaje_correo = html_mensaje_correo.Replace("[NOMBRE_CLIENTE]", Label_EMPRESA_TRABAJADOR.Text.Trim()); html_mensaje_correo = html_mensaje_correo.Replace("[NUMERO_CONTRATO]", HiddenField_ID_CONTRATO.Value); html_mensaje_correo = html_mensaje_correo.Replace("[NOMBRE_TRABAJADOR]", TextBox_NOMBRES.Text.Trim() + " " + TextBox_APELLIDOS.Text.Trim()); html_mensaje_correo = html_mensaje_correo.Replace("[NUM_DOC_IDENTIDAD]", DropDownList_TIP_DOC_IDENTIDAD.SelectedItem.Text + " " + TextBox_NUM_DOC_IDENTIDAD.Text.Trim()); if (seccion == SeccionEnvio.Seleccion) { html_mensaje_correo = html_mensaje_correo.Replace("[NOMBRE_CONTACTO_CLIENTE]", Label_NOMBRE_CONTACTO_SELECCION.Text.Trim()); } else { html_mensaje_correo = html_mensaje_correo.Replace("[NOMBRE_CONTACTO_CLIENTE]", Label_NOMBRE_CONTACTO_CONTRATACION.Text.Trim()); } usuario _usuario = new usuario(Session["idEmpresa"].ToString()); DataTable tablaUsuario = _usuario.ObtenerUsuarioPorUsuLog(Session["USU_LOG"].ToString()); DataRow filaUsuario = tablaUsuario.Rows[0]; if (filaUsuario["USU_TIPO"].ToString().ToUpper() == "PLANTA") { html_mensaje_correo = html_mensaje_correo.Replace("[USUARIO_ENVIO]", filaUsuario["NOMBRES"].ToString().Trim() + " " + filaUsuario["APELLIDOS"].ToString().Trim()); } else { html_mensaje_correo = html_mensaje_correo.Replace("[USUARIO_ENVIO]", filaUsuario["NOMBRES_EXTERNO"].ToString().Trim() + " " + filaUsuario["APELLIDOS_EXTERNO"].ToString().Trim()); } tools _tools = new tools(); if (seccion == SeccionEnvio.Seleccion) { if (_tools.enviarCorreoConCuerpoHtmlyArchivoAdjunto(TextBox_EMAIL_SELECCION.Text, "DOCUMENTACION: CONTRATO " + HiddenField_ID_CONTRATO.Value + " - " + DropDownList_TIP_DOC_IDENTIDAD.SelectedItem.Text.Trim() + " " + TextBox_NUM_DOC_IDENTIDAD.Text.Trim() + " - " + TextBox_NOMBRES.Text.Trim() + " " + TextBox_APELLIDOS.Text.Trim(), html_mensaje_correo, streamArchivoAEnviar, archiveName) == false) { Informar(Panel_MENSAJE_ENVIOARCHOVOS, Label_MENSAJE_ENVIOARCHIVOS, "Error al intentar enviar el correo al contácto de selección: " + _tools.MensajError, Proceso.Error); return false; } else { return true; } } else { if (_tools.enviarCorreoConCuerpoHtmlyArchivoAdjunto(TextBox_EMAIL_CONTRATACION.Text, "DOCUMENTACION: CONTRATO " + HiddenField_ID_CONTRATO.Value + " - " + DropDownList_TIP_DOC_IDENTIDAD.SelectedItem.Text.Trim() + " " + TextBox_NUM_DOC_IDENTIDAD.Text.Trim() + " - " + TextBox_NOMBRES.Text.Trim() + " " + TextBox_APELLIDOS.Text.Trim(), html_mensaje_correo, streamArchivoAEnviar, archiveName) == false) { Informar(Panel_MENSAJE_ENVIOARCHOVOS, Label_MENSAJE_ENVIOARCHIVOS, "Error al intentar enviar el correo al contácto de contratación: " + _tools.MensajError, Proceso.Error); return false; } else { return true; } } s.Finish(); s.Close(); }