/// <summary> /// Función que carga la configuración para el envío de correo /// </summary> /// <returns></returns> public static Boolean CargarConfiguracionCorreo() { try { configuracionCorreo = new ConfiguracionCorreo() { conCertificado = true, conImagenDeEncabezado = true, usuario = ConfigurationManager.AppSettings["usuario"], pass = ConfigurationManager.AppSettings["pass"], puerto = int.Parse(ConfigurationManager.AppSettings["puerto"]), remitente = ConfigurationManager.AppSettings["usuario"], smtp = ConfigurationManager.AppSettings["smtp"], pathImagenEncabezado = ConfigurationManager.AppSettings["pathImagenEncabezado"], esHtmlElCuerpoCorreo = true }; int contadorAux = int.Parse(ConfigurationManager.AppSettings["numeroDestinatarios"]); for (int i = 1; i <= contadorAux; i++) { configuracionCorreo.listaDestinatarios.Add(ConfigurationManager.AppSettings["destinatario" + i.ToString()]); } contadorAux = int.Parse(ConfigurationManager.AppSettings["numeroDestinatariosError"]); for (int i = 1; i <= contadorAux; i++) { configuracionCorreo.listaDestinatariosError.Add(ConfigurationManager.AppSettings["destinatarioError" + i.ToString()]); } return(true); } catch (Exception) { return(false); } }
/// <summary> /// actualiza un registro /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void ASPxGridView1_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e) { try { using (var conexion = new DataModelFE()) { // se declara el objeto a insertar ConfiguracionCorreo dato = new ConfiguracionCorreo(); //llena el objeto con los valores de la pantalla dato.codigo = e.NewValues["codigo"] != null ? e.NewValues["codigo"].ToString() : null; //busca el objeto dato = conexion.ConfiguracionCorreo.Find(dato.codigo); if (e.NewValues["password"] != null) { dato.password = e.NewValues["password"] != null?Ale5Util.Encriptar(e.NewValues["password"].ToString()) : null; } dato.codigo = e.NewValues["codigo"] != null ? e.NewValues["codigo"].ToString() : null; dato.ssl = e.NewValues["ssl"] != null ? e.NewValues["ssl"].ToString() : null; dato.port = e.NewValues["port"] != null ? e.NewValues["port"].ToString().ToUpper() : null; dato.user = e.NewValues["user"] != null ? e.NewValues["user"].ToString(): null; dato.host = e.NewValues["host"] != null ? e.NewValues["host"].ToString() : null; dato.estado = e.NewValues["estado"].ToString(); dato.usuarioModificacion = Session["usuario"].ToString(); dato.fechaModificacion = Date.DateTimeNow(); //modifica objeto conexion.Entry(dato).State = EntityState.Modified; conexion.SaveChanges(); //esto es para el manero del devexpress e.Cancel = true; this.ASPxGridView1.CancelEdit(); ((ASPxGridView)sender).JSProperties["cpUpdatedMessage"] = "Los datos se modificaron correctamente, puede continuar."; } } catch (DbEntityValidationException ex) { // Retrieve the error messages as a list of strings. var errorMessages = ex.EntityValidationErrors .SelectMany(x => x.ValidationErrors) .Select(x => x.ErrorMessage); // Join the list to a single string. var fullErrorMessage = string.Join("; ", errorMessages); // Throw a new DbEntityValidationException with the improved exception message. throw new DbEntityValidationException(fullErrorMessage, ex.EntityValidationErrors); } catch (Exception ex) { throw new Exception(Utilidades.validarExepcionSQL(ex), ex.InnerException); } finally { //refescar los datos this.refreshData(); } }
protected void btnVerificarCorreo_Click(object sender, EventArgs e) { try { string emisor = Session["emisor"].ToString(); using (var conexion = new DataModelFE()) { ConfiguracionCorreo correo = conexion.ConfiguracionCorreo.Find(emisor); if (correo != null && !string.IsNullOrWhiteSpace(this.txtCorreo.Text)) { bool result = Utilidades.sendMail(emisor, this.txtCorreo.Text, "TEST", Utilidades.mensageGenericoPruebaCorreo(), "Confuguración CORREO", null); if (result) { this.alertMessages.InnerText = "Correo enviado con éxito"; this.alertMessages.Attributes["class"] = "alert alert-info"; } else { this.alertMessages.InnerText = "Correo no enviado, verificar configuración"; this.alertMessages.Attributes["class"] = "alert alert-danger"; } } } } catch (Exception ex) { this.alertMessages.InnerText = Utilidades.validarExepcionSQL(ex); this.alertMessages.Attributes["class"] = "alert alert-danger"; } }
/// <summary> /// /// </summary> /// <param name="emisor">pasara buscar el proveedor de correo</param> /// <param name="destinatario">direccion de correo</param> /// <param name="asunto">asunto de correo</param> /// <param name="mensaje">contenido del correo</param> /// <param name="alias">nombre para enmascar el correo</param> /// <returns>TRUE envaido FALSE no eviado</returns> public static bool sendMail(string emisor, string destinatario, string asunto, string mensaje, string alias, List <string> cc) { try { using (var conexion = new DataModelFE()) { ConfiguracionCorreo mailConfig = conexion.ConfiguracionCorreo.Where(x => x.estado == Estado.ACTIVO.ToString() && x.codigo == emisor).FirstOrDefault(); if (mailConfig == null) { mailConfig = conexion.ConfiguracionCorreo.Where(x => x.estado == Estado.ACTIVO.ToString() && x.codigo == Usuario.USUARIO_AUTOMATICO).FirstOrDefault(); } MailMessage correo = new MailMessage(); SmtpClient smtp = new SmtpClient(); correo.From = new MailAddress(mailConfig.user, alias); if (string.IsNullOrWhiteSpace(destinatario)) { correo.To.Add(cc[0]); } else { correo.To.Add(destinatario); } if (cc != null) { foreach (var item in cc) { correo.CC.Add(item); } } //correo.Subject = String.Format("SPAM-LOW: {0}", asunto); correo.Subject = asunto; correo.Body = mensaje; correo.Priority = MailPriority.Normal; correo.IsBodyHtml = true; smtp.Credentials = new NetworkCredential(mailConfig.user, Ale5Util.DesEncriptar(mailConfig.password)); smtp.Host = mailConfig.host; smtp.Port = int.Parse(mailConfig.port); if (Confirmacion.SI.ToString().Equals(mailConfig.ssl)) { smtp.EnableSsl = true; } else { smtp.EnableSsl = false; } smtp.Send(correo); correo.Dispose(); } return(true); } catch (Exception e) { e.ToString(); return(false); } }