/// <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";
            }
        }
Пример #4
0
        /// <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);
            }
        }