public bool SendResetPasswordMail(string email) { var randomLink = GenerateRandomLink(); if (_userRepository.CheckIfEmailExists(email)) { var user = _userRepository.TryGetUserByEmail(email); if (_userRepository.AddConfirmationKey(user, randomLink, ConfirmType.PasswordReset, DateTime.Now.AddHours(1))) { string completeLink = _configuration.GetSection("Links").GetValue <string>("PasswordReset") + "/" + randomLink; using MailBuilder builder = new MailBuilder(_configuration); MailConfirmEmail model = new MailConfirmEmail { FirstName = user.Firstname, LastName = user.Lastname, Link = completeLink, To = user.Email, Type = EmailKind.PasswordReset }; var msg = builder.CreateMailConfirmEmail(model); return(_mailService.Send(msg)); } return(false); } else { using MailBuilder builder = new MailBuilder(_configuration); return(_mailService.Send(builder.CreateUserDoesNotExistMail(email))); } }
public bool SendEmailConfirmationLink(WebUser user) { if (user == null) { return(false); } string link = GenerateRandomLink(); if (_userRepository.AddConfirmationKey(user, link, ConfirmType.EmailConfirmation)) { string completeLink = _clientUrl + "/account/verify/" + link; using MailBuilder builder = new MailBuilder(_configuration); MailConfirmEmail model = new MailConfirmEmail { FirstName = user.Firstname, LastName = user.Lastname, Link = completeLink, To = user.Email, Type = EmailKind.EmailConfirmation }; var msg = builder.CreateMailConfirmEmail(model); builder.Dispose(); return(_mailService.Send(msg)); } Logger.LogInformation("Could not save confirmation link {link} for user {user}", link, user); return(false); }
public bool SendForgottenUsernameMail(string email) { if (_userRepository.CheckIfEmailExists(email)) { var user = _userRepository.TryGetUserByEmail(email); using MailBuilder builder = new MailBuilder(_configuration); MailConfirmEmail model = new MailConfirmEmail { FirstName = user.Firstname, LastName = user.Lastname, To = user.Email, Type = EmailKind.ForgotUsername, Username = user.Username }; return(_mailService.Send(builder.CreateMailConfirmEmail(model))); } else { using MailBuilder builder = new MailBuilder(_configuration); return(_mailService.Send(builder.CreateUserDoesNotExistMail(email))); } }