/// <summary> /// Envía un mail para informarle al usuario que inició el proceso de cambio de contraseña. /// acorde. /// </summary> /// <param name="mail"></param> public bool ResetPasswordRequest(string mail) { if (!IsValidForRecover(mail)) { return(false); } UserMapper mapper = new UserMapper(); User user = mapper.Get(mail); if (user == null) { // Si no se encuentra, no se informa para ofuscar posibles ataques string errorDescription = "No se ha encontrado usuario " + mail + "."; log.AddLogCritical("ResetPassword", errorDescription, this); AddError(new ResultBE(ResultBE.Type.NULL, errorDescription)); } else { string activationHash = SecurityHelper.Encrypt(user.Mail + user.Lastupdate.Minute) + user.Id; MailerHelper.SendResetPassword(user, activationHash); } return(true); }
/// <summary> /// Fuerza el cambio de password de un usuario, anulando la contraseña actual. /// </summary> /// <param name="userId"></param> public void ResetPasswordRequest(int userId) { UserMapper mapper = new UserMapper(); User user = mapper.Get(userId); if (user == null) { // Si no se encuentra, no se informa para ofuscar posibles ataques string errorDescription = "No se ha encontrado usuario con id " + userId + "."; log.AddLogCritical("ResetPassword", errorDescription, this); AddError(new ResultBE(ResultBE.Type.NULL, errorDescription)); } else { //Se asigna un password cualquiera para invalidar el acceso user.Password = DateTime.Now.Ticks.ToString(); // TODO - controlar errores Edit(user); //Se recupera porque a veces hay problemas con el hash user = Get(userId); string activationHash = SecurityHelper.Encrypt(user.Mail + user.Lastupdate.Minute) + user.Id; MailerHelper.SendResetPasswordByAdmin(user, activationHash); } }
public bool SendRecovery(string userName) { UserMapper userMapper = new UserMapper(); User user = userMapper.Get(userName); if (user == null) { AddError(new ResultBE(ResultBE.Type.NULL, "Usuario no existe: " + userName)); return(false); } else { string recoveryHash = SecurityHelper.Encrypt(user.Mail + user.Lastupdate.Minute); //TODO - Confeccionar plantillas para el envío de mail MailerHelper.Send( "Buenas! " + user.Name + "!", "Parece que te has olvidado la contraseña... o al menos esos nos has dicho." + Environment.NewLine + "Para cambiar tu password, accedé a la siguiente url: http://localhost:50551/recovery_action.aspx?r=" + recoveryHash + user.Id, new string[] { user.Mail } ); return(true); } }
public async Task <IActionResult> SendConfirmed([FromForm] EmailRequest request) { var emailTemplate = await _context.EmailTemplate .FirstOrDefaultAsync(m => m.Id == request.Template.Id); if (emailTemplate == null) { return(NotFound()); } try { if (await MailerHelper.SendBulkEmailsAsync(emailTemplate, request.UploadFile)) { return(RedirectToAction(nameof(Index), new { result = "Emails sent successfully." })); } else { return(RedirectToAction(nameof(Index), new { result = "Recipient is required in the csv" })); } } catch (Exception ex) { return(RedirectToAction(nameof(Index), new { result = "An error occurred." + ex.Message })); } }
public bool Suscribe(NewsAddressee newsAddressee) { if (!IsValid(newsAddressee)) { return(false); } //chequear existencia del correo NewsAddresseeMapper mapper = new NewsAddresseeMapper(); NewsAddressee existence = mapper.Get(newsAddressee.Email); if (existence != null) { string errorDescription = "El suscriptor ya existe."; log.AddLogWarn("Save", errorDescription, this); AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription)); return(false); } newsAddressee.Active = true; newsAddressee.Singup = DateTime.Now; if (!mapper.Save(newsAddressee)) { string errorDescription = "No se ha podido guardar el suscriptor."; log.AddLogCritical("Save", errorDescription, this); AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription)); return(false); } MailerHelper.SendNewsletterWelcome(newsAddressee); return(true); }
/// <summary> /// Creates a user for backoffice. /// </summary> /// <param name="user"></param> /// <returns></returns> public bool Save(User user, bool assignWebRol = false) { RoleManager roleManager = new RoleManager(); UserMapper mapper = new UserMapper(); if (!IsValidForSave(user)) { return(false); } // Existencia del user name if (mapper.Get(user.Mail) != null) { string errorDescription = "El usuario ya existe."; log.AddLogWarn("SaveForWeb", errorDescription, this); AddError(new ResultBE(ResultBE.Type.ALREADY_EXISTS, errorDescription)); return(false); } /* * // Existencia del correo electrónico * if (mapper.GetByMail(user.Mail)) * { * string errorDescription = "El mail se encuentra en uso."; * log.AddLogWarn("SaveForWeb", errorDescription, this); * AddError(new ResultBE(ResultBE.Type.ALREADY_EXISTS, errorDescription)); * return false; * } */ user.Lastupdate = DateTime.Now; user.Locked = true; user.Active = false; // Asignar permisos de usuario web (recién cuando se loguea) if (mapper.Save(user)) { if (assignWebRol) { user.Roles = roleManager.GetForWebUser(); roleManager.SaveRoleForUser(user); } //se recupera de nuevo el usuario porque hay discrepancia entre la fecha de la base y la del sistema user = mapper.Get(user.Id); string activationHash = SecurityHelper.Encrypt(user.Mail + user.Lastupdate.Minute) + user.Id; MailerHelper.SendWelcomeMail(user, activationHash); } else { string errorDescription = "El mail se encuentra en uso."; log.AddLogCritical("SaveForWeb", errorDescription, this); AddError(new ResultBE(ResultBE.Type.FAIL, errorDescription)); return(false); } return(true); }
/// <summary> /// Realiza el reseteo solicitado por el usuario desde la sección profile o apartado correspondiente. /// </summary> /// <param name="user"></param> /// <returns></returns> public bool RestPassword(User user) { bool success = Edit(user); if (success) { MailerHelper.SendResetPasswordConfirmation(user); } return(success); }
public ActionResult ResetPassword(string email) { var ar = new AgenziaRepository(); var agency = ar.GetByEmail(email); if (agency != null) { CryptoHelper cryptoHelper = new CryptoHelper(); var random = new Random(); var password = random.Next().ToString(); agency.Password = cryptoHelper.CryptPassword(password); ar.Save(agency); var mailerHelper = new MailerHelper(); var text = string.Format("Gentile {0} la tua nuova password di Parti Comodo è: {1}", agency.Nome, password); mailerHelper.SendMail(email, text); } var viewModel = new RegisterViewModel(); return(View("Register", viewModel)); }
public ActionResult SendMailingList(DateTime dataApprovazione) { var vr = new ViaggioRepository(); var viaggi = vr.GetApproved().Where(c => c.DataApprovazione >= dataApprovazione); if (viaggi.Count() > 0) { var ar = new AgenziaRepository(); var agenzie = ar.GetAllAgenzie(100, 0); if (agenzie.Count > 0) { var mh = new MailerHelper(); var mlh = new MailingListHelper(); var mailText = mlh.GetMailingList(viaggi.ToList()); foreach (var agenzia in agenzie) { mh.SendMail(agenzia.Email, mailText); } } } return(RedirectToAction("AdminDashBoard", "Dashboard")); }
public void SendMail() { MailerHelper.Send("Esta es una prueba", "La prueba de la verdad.", new string[] { "*****@*****.**" }); }
public ApiControllerEx() { mailer = new MailerHelper(); }
static void Main(string[] args) { MailerHelper.Send(); }