예제 #1
0
        public bool EnviarNotificacionEmailOutlook(EstructuraMail model, IWebHostEnvironment env)
        {
            bool result = false;

            model = ConstruccionNotificacion(model, env);
            try
            {
                SmtpMail oMail = new SmtpMail("TryIt");
                oMail.From     = DecodeData("ZW1jaW5nZW5pZXJpYWRlc29mdHdhcmVAb3V0bG9vay5jb20=");
                oMail.To       = model.EmailDestinatario;
                oMail.Subject  = model.Asunto;
                oMail.HtmlBody = model.Cuerpo;
                //oMail.TextBody = "";
                SmtpServer oServer = new SmtpServer("smtp.live.com");
                oServer.User        = DecodeData("ZW1jaW5nZW5pZXJpYWRlc29mdHdhcmVAb3V0bG9vay5jb20=");
                oServer.Password    = DecodeData("MTIzNGZhYnJpemlv");
                oServer.Port        = 587;
                oServer.ConnectType = SmtpConnectType.ConnectSSLAuto;
                EASendMail.SmtpClient oSmtp = new EASendMail.SmtpClient();
                oSmtp.SendMail(oServer, oMail);
                result = true;
            }

            catch (Exception ex)
            {
                var appLog = new AppLog();
                appLog.CreateDate = DateTime.UtcNow;
                appLog.Exception  = ex.ToString();
                appLog.Email      = model.EmailDestinatario;
                appLog.Method     = "EnviarMailNotificacionOutlook";
                AppLogRepository.AddAppLog(appLog);
            }

            return(result);
        }
        public bool EnviarMailNotificacion(EstructuraMail model)
        {
            bool result = false;

            model = ConstruccionNotificacion(model);
            try
            {
                MailMessage mensaje  = new MailMessage();
                SmtpClient  servidor = new SmtpClient();
                mensaje.From            = new MailAddress("SudokuParaTodos <" + EngineData.UserMail + ">");
                mensaje.Subject         = model.Asunto;
                mensaje.SubjectEncoding = System.Text.Encoding.UTF8;
                mensaje.Body            = model.Cuerpo;
                mensaje.BodyEncoding    = System.Text.Encoding.UTF8;
                mensaje.IsBodyHtml      = true;
                mensaje.To.Add(new MailAddress(model.EmailDestinatario));
                //if (pathAdjunto != string.Empty) { mensaje.Attachments.Add(new Attachment(pathAdjunto)); }
                servidor.Credentials = new System.Net.NetworkCredential(EngineData.UserMail, EngineData.IdMail);
                servidor.Port        = 587;
                servidor.Host        = "smtp.gmail.com";
                servidor.EnableSsl   = true;
                servidor.Send(mensaje);
                mensaje.Dispose();
                result = true;
            }
            catch (Exception ex)
            {
                string e = ex.ToString();
            }

            return(result);
        }
예제 #3
0
        public JsonResult NotificacionPrueba(string email)
        {
            Respuesta R           = new Respuesta();
            string    emailCode64 = Funcion.ConvertirBase64(email);
            bool      resultado   = Funcion.EmailEsValido(email);

            if (!resultado)
            {
                R = Funcion.RespuestaProceso(null, null, EngineData.EmailNoValido(), email);
                return(Json(R));
            }
            resultado = Metodo.InsertarClienteTest(Funcion, email);
            string         enlaze = Funcion.CrearEnlazePrueba(Metodo, email);
            EstructuraMail model  = new EstructuraMail();

            model = Funcion.SetEstructuraMailTest(enlaze, email, model);
            if (!resultado)
            {
                R = Funcion.RespuestaProceso(null, email, null, "Error Registrando");
                return(Json(R));
            }
            resultado = Notificacion.EnviarMailNotificacion(model);
            if (resultado)
            {
                R = Funcion.RespuestaProceso(null, email, null, "Exito");
            }
            else
            {
                R = Funcion.RespuestaProceso(null, email, null, "Error Enviando");
            }

            return(Json(R));
        }
예제 #4
0
        private EstructuraMail ConstruccionNotificacion(EstructuraMail model, IWebHostEnvironment env)
        {
            try
            {
                string body = Path.Combine(env.WebRootPath, "templates", model.PathLecturaArchivo);
                body         = File.ReadAllText(body);
                body         = body.Replace("@Model.Saludo", model.Saludo);
                body         = body.Replace("@Model.Fecha", model.Fecha);
                body         = body.Replace("@Model.EmailDestinatario", model.EmailDestinatario);
                body         = body.Replace("@Model.Observacion", model.Observacion);
                body         = body.Replace("@Model.Descripcion", model.Descripcion);
                body         = body.Replace("@Model.ClickAqui", model.ClickAqui);
                body         = body.Replace("@Model.Link", model.Link);
                body         = body.Replace("@Model.CodigoResetPassword", model.CodigoResetPassword);
                model.Cuerpo = body;
            }
            catch (Exception ex)
            {
                var appLog = new AppLog();
                appLog.CreateDate = DateTime.UtcNow;
                appLog.Exception  = ex.ToString();
                appLog.Email      = model.EmailDestinatario;
                appLog.Method     = "ConstruccionNotificacion";
                AppLogRepository.AddAppLog(appLog);
            }

            return(model);
        }
예제 #5
0
        public bool EnviarNuevaNotificacion(IEngineNotificacion Notificacion, IEngineDb Metodo, string email = "", string type = "", string password = "")
        {
            bool           resultado = false;
            EstructuraMail model     = new EstructuraMail();

            resultado = CadenaBase64Valida(email);
            if (resultado)
            {
                email = DecodeBase64(email);
            }

            if (type == EngineData.Test)
            {
                string enlaze = CrearEnlazePrueba(Metodo, email);
                model = SetEstructuraMailTest(enlaze, email, model);
            }
            else if (type == EngineData.Register)
            {
                password = DecodeBase64(password);
                string enlaze = CrearEnlazeRegistro(Metodo, email, password);
                model = SetEstructuraMailRegister(enlaze, email, model);
            }
            else if (type == EngineData.RegisterManager)
            {
                string enlaze = CrearEnlazeRegistroGerente(Metodo, email);
                model = SetEstructuraMailRegisterManager(enlaze, email, model);
            }
            resultado = Notificacion.EnviarMailNotificacion(model);
            return(resultado);
        }
예제 #6
0
 public EstructuraMail SetEstructuraMailRegister(string enlaze, string email, EstructuraMail model)
 {
     model.Link               = enlaze;
     model.Saludo             = EngineData.Saludo();
     model.EmailDestinatario  = email;
     model.Fecha              = DateTime.UtcNow.ToString();
     model.Descripcion        = EngineData.DescripcionRegistro();
     model.ClickAqui          = EngineData.ClickAqui2();
     model.Asunto             = EngineData.AsuntoRegistro();
     model.Observacion        = EngineData.ObservacionRegistro();
     model.PathLecturaArchivo = EngineData.PathLecturaArchivoRegistro;
     return(model);
 }
예제 #7
0
        public EstructuraMail SerializeEmailRegisteredUser(string emailTo, string name, string lastName, string link)
        {
            var model = new EstructuraMail()
            {
                Saludo             = "Hola: " + name,
                Fecha              = DateTime.UtcNow.ToString("dd/MM/yyyy"),
                EmailDestinatario  = emailTo,
                Asunto             = "Activa tu cuenta en EMC Ingenieria de Software",
                Observacion        = "Haz Click en el siguiente link !! <br> Tambien puedes copiar y pegar el link en tu navegador...",
                Descripcion        = "http://joselelu-001-site2.etempurl.com/Home/Index?ide=" + link,
                PathLecturaArchivo = "EmailBodyQuery.cshtml"
            };

            return(model);
        }
예제 #8
0
        public EstructuraMail SerializeEmailBodyConsulta(string emailTo, string subject, string body, string name)
        {
            var model = new EstructuraMail()
            {
                Saludo             = "Efrain en buena hora tienes una consulta!...",
                Fecha              = DateTime.UtcNow.ToString("dd/MM/yyyy"),
                EmailDestinatario  = "*****@*****.**",
                Descripcion        = "Desde: " + emailTo,
                Asunto             = subject,
                Observacion        = subject + "<br>" + body,
                PathLecturaArchivo = "EmailBodyQuery.cshtml"
            };

            return(model);
        }
예제 #9
0
        public EstructuraMail SerializeEmailBodyRespuestaConsulta(string emailTo, string subject, string body, string name)
        {
            var model = new EstructuraMail()
            {
                Saludo             = "Hola: " + name,
                Fecha              = DateTime.UtcNow.ToString("dd/MM/yyyy"),
                EmailDestinatario  = emailTo,
                Asunto             = "Respuesta a (y/o) consulta",
                Observacion        = "Recibimos su consulta: " + subject,
                Descripcion        = "Responderemos lo antes posible , gracias por cotactarnos! ...",
                PathLecturaArchivo = "EmailBodyQuery.cshtml"
            };

            return(model);
        }
        private EstructuraMail ConstruccionNotificacion(EstructuraMail model)
        {
            string body = HttpContext.Current.Server.MapPath(model.PathLecturaArchivo);

            body         = File.ReadAllText(body);
            body         = body.Replace("@Model.Saludo", model.Saludo);
            body         = body.Replace("@Model.Fecha", model.Fecha);
            body         = body.Replace("@Model.EmailDestinatario", model.EmailDestinatario);
            body         = body.Replace("@Model.Observacion", model.Observacion);
            body         = body.Replace("@Model.Descripcion", model.Descripcion);
            body         = body.Replace("@Model.ClickAqui", model.ClickAqui);
            body         = body.Replace("@Model.Link", model.Link);
            body         = body.Replace("@Model.CodigoResetPassword", model.CodigoResetPassword);
            model.Cuerpo = body;
            return(model);
        }
예제 #11
0
        public ActionResult NotificacionRestablecerPassword(string email)
        {
            Respuesta R           = new Respuesta();
            string    emailCode64 = Funcion.ConvertirBase64(email);
            bool      resultado   = Funcion.EmailEsValido(email);

            if (!resultado)
            {
                //Email no valido
                R = Funcion.RespuestaProceso("Email_No_Valido", emailCode64, null, email + EngineData.EmailNoValido());
                return(Json(R));
            }
            Guid identidad = Metodo.ObtenerIdentidadCliente(email);

            if (identidad == Guid.Empty)
            {
                // Email no registrado
                R = Funcion.RespuestaProceso("Email_No_Registrado", emailCode64, null, email + EngineData.EmailNoRegistrado());
                return(Json(R));
            }

            string         codigo = Funcion.ConstruirCodigo();
            string         enlaze = Funcion.CrearEnlazeRestablecerPassword(Metodo, email, codigo);
            EstructuraMail model  = new EstructuraMail();

            model = Funcion.SetEstructuraMailResetPassword(enlaze, email, codigo, model);
            ResetPassword resetPassword = new ResetPassword();

            resetPassword = Funcion.SetResetPassword(email, codigo);
            resultado     = Metodo.InsertarResetPassword(resetPassword);
            if (!resultado)
            {
                // Error insertando codigo
                R = Funcion.RespuestaProceso("Error_Insertando_Codigo", emailCode64, null, email + EngineData.ErrorInternoServidor());
                return(Json(R));
            }
            resultado = Notificacion.EnviarMailNotificacion(model);
            if (resultado)
            {
                R = Funcion.RespuestaProceso("Exito", email, null, email + EngineData.EnvioCodigoRestablecerPassword()); //Envio de codigo restablecer password
            }
            else
            {
                R = Funcion.RespuestaProceso("Error", email, null, email + EngineData.ErrorEnviandoMail()); //Error enviando notificacion
            }
            return(Json(R));
        }
        public ActionResult Index(Gerente modelo = null)
        {
            CreateGalleta();
            ViewBag.Respuesta         = null;
            ViewBag.Roles             = Funcion.Roles();
            modelo.FechaRegistro      = DateTime.Now;
            modelo.FechaActualizacion = DateTime.Now;

            if (Request.HttpMethod == "POST")
            {
                if (modelo.Nombre == string.Empty || modelo.NombreUsuario == string.Empty || modelo.Email == string.Empty || modelo.Rol == string.Empty || modelo.Nombre == null || modelo.NombreUsuario == null || modelo.Email == null || modelo.Rol == null)
                {
                    ViewBag.Respuesta = "Todos los campos son requeridos, completelos por favor";
                    return(View(modelo));
                }
                bool resultado = false;
                resultado = Funcion.EmailEsValido(modelo.Email);
                if (!resultado)
                {
                    ViewBag.Respuesta = "La direccion de correo no es valida";
                    return(View(modelo));
                }
                modelo.Identidad = Funcion.IdentificadorReg();
                resultado        = Metodo.InsertarNuevoGerente(modelo);
                if (!resultado)
                {
                    ViewBag.Respuesta = "Error al crear administrador";
                    return(View(modelo));
                }
                string         enlaze     = Funcion.CrearEnlazeRegistroGerente(Metodo, modelo.Email);
                EstructuraMail estructura = new EstructuraMail();
                estructura                = Funcion.SetEstructuraMailRegisterManager(enlaze, modelo.Email, estructura);
                resultado                 = Notificacion.EnviarMailNotificacion(estructura);
                ViewBag.Respuesta         = "Administrador creado exitosamente,debe revisar bandeja de entrada";
                modelo                    = new Gerente();
                modelo.FechaActualizacion = DateTime.Now;
                return(View(modelo));
            }

            return(View(modelo));
        }
예제 #13
0
        public bool EnviarMailNotificacion(EstructuraMail model, IWebHostEnvironment env)
        {
            bool result = false;

            model = ConstruccionNotificacion(model, env);
            try
            {
                MailMessage mensaje = new MailMessage();
                System.Net.Mail.SmtpClient servidor = new System.Net.Mail.SmtpClient();
                mensaje.From            = new System.Net.Mail.MailAddress(DecodeData("RU1DIEluZ2VuaWVyaWEgZGUgU29mdHdhcmUgPGVtY2luZ2VuaWVyaWFkZXNvZnR3YXJlLmNvbUBnbWFpbC5jb20+"));
                mensaje.Subject         = model.Asunto;
                mensaje.SubjectEncoding = System.Text.Encoding.UTF8;
                mensaje.Body            = model.Cuerpo;
                mensaje.BodyEncoding    = System.Text.Encoding.UTF8;
                mensaje.IsBodyHtml      = true;
                mensaje.To.Add(new System.Net.Mail.MailAddress(model.EmailDestinatario));
                servidor.Credentials = new System.Net.NetworkCredential(DecodeData("ZW1jaW5nZW5pZXJpYWRlc29mdHdhcmUuY29tQGdtYWlsLmNvbQ=="), DecodeData("MTIzNGZhYnJpemlv"));
                servidor.Port        = 587;
                servidor.Host        = "smtp.gmail.com";
                servidor.EnableSsl   = true;
                servidor.Send(mensaje);
                mensaje.Dispose();
                result = true;
            }
            catch (Exception ex)
            {
                var appLog = new AppLog();
                appLog.CreateDate = DateTime.UtcNow;
                appLog.Exception  = ex.ToString();
                appLog.Email      = model.EmailDestinatario;
                appLog.Method     = "EnviarMailNotificacion";
                AppLogRepository.AddAppLog(appLog);
            }

            return(result);
        }
예제 #14
0
 public EstructuraMail SetEstructuraMailResetPassword(string enlaze, string email, string codigo, EstructuraMail model)
 {
     model.Link                = enlaze;
     model.Saludo              = EngineData.Saludo();
     model.EmailDestinatario   = email;
     model.Fecha               = DateTime.UtcNow.ToString();
     model.Descripcion         = EngineData.DescripcionRestablecerPassword();
     model.ClickAqui           = EngineData.ClickAqui3();
     model.Asunto              = EngineData.AsuntoResetPassword();
     model.Observacion         = EngineData.ObservacionRestablecerPassword();
     model.PathLecturaArchivo  = EngineData.PathLecturaArchivoRestablecerPassword;
     model.CodigoResetPassword = codigo;
     return(model);
 }
예제 #15
0
        public ActionResult Register(ActivarCliente model = null)
        {
            Respuesta R = new Respuesta();

            if (model == null)
            {
                return(View(R));
            }
            if (model.Email == null || model.Password == null || model.Password2 == null || model.Nombre == null || model.Apellido == null)
            {
                return(View(R));
            }

            bool   resultado   = Funcion.EmailEsValido(model.Email);
            string emailCode64 = Funcion.ConvertirBase64(model.Email);

            if (!resultado)
            {
                //Email no valido
                R = Funcion.RespuestaProceso("Register", emailCode64, null, model.Email + EngineData.EmailNoValido());
                return(RedirectToAction("State", "Home", R));
            }
            resultado = Funcion.CompareString(model.Password, model.Password2);
            if (!resultado)
            {
                //Las contraseñas deben ser iguales
                R = Funcion.RespuestaProceso("Register", emailCode64, null, model.Email + EngineData.PasswordNoIdenticos());
                return(RedirectToAction("State", "Home", R));
            }
            model.Estatus       = false;
            model.FechaRegistro = DateTime.UtcNow;
            model.Password      = Funcion.ConvertirBase64(model.Email + model.Password);
            int result = Metodo.ClienteRegistro(model);

            if (result <= 0)
            {
                //Error al registrar cliente
                Funcion.ConstruirSucesoLog("Error registrando cliente*Home/Register*" + model.Email, Metodo);
                R = Funcion.RespuestaProceso("Register", emailCode64, null, model.Email + EngineData.ErrorRegistroCliente());
                return(RedirectToAction("State", "Home", R));
            }

            //*****************PAGO HARCODE**************************
            PagoCliente pago = Funcion.ConstruirPagoCliente(result);

            Metodo.SetPagoCliente(pago);
            //***************************************************

            string         enlaze     = Funcion.CrearEnlazeRegistro(Metodo, model.Email, model.Password2);
            EstructuraMail estructura = new EstructuraMail();

            estructura = Funcion.SetEstructuraMailRegister(enlaze, model.Email, estructura);
            resultado  = Notificacion.EnviarMailNotificacion(estructura);
            if (resultado)
            {
                //Registro exitoso
                R = Funcion.RespuestaProceso("Index", emailCode64, null, model.Email + EngineData.RegistroExitoso());
                return(RedirectToAction("State", "Home", R));
            }
            else
            {
                //Error enviando notficacion - error interno
                Funcion.ConstruirSucesoLog("Error enviando email*Home/Register*" + model.Email, Metodo);
                R = Funcion.RespuestaProceso("Open", emailCode64, null, model.Email + EngineData.ErrorEnviandoMail());
                return(RedirectToAction("State", "Home", R));
            }
        }