예제 #1
0
        public IActionResult ResetPasswordRequest([FromBody] PasswordResetRequest model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Valid email address is required"));
            }

            ActionResponse response  = new ActionResponse();
            var            foundUser = userService.GetUserByEmail(model.Email);

            if (foundUser != null)
            {
                string adminEmail = HttpContext.RequestServices.GetRequiredService <IConfiguration>()
                                    .GetValue <String>("Email:Smtp:AdminEmail");
                string             resetPasswordUrl = configuration["ResetPasswordUrl"];
                DateTime           datedTime        = DateTime.Now;
                PasswordTokenModel tModel           = new PasswordTokenModel()
                {
                    Email     = foundUser.Email,
                    TokenDate = datedTime
                };

                TokenUtility            utility    = new TokenUtility();
                string                  token      = utility.GeneratePasswordResetToken(tModel);
                PasswordResetEmailModel resetModel = new PasswordResetEmailModel()
                {
                    Email = foundUser.Email,
                    Token = token,
                    Url   = resetPasswordUrl
                };

                response = userService.ResetPasswordRequest(resetModel, datedTime, adminEmail);
            }
            return(Ok(response));
        }
        /// <summary>
        /// 寄送密碼重設信
        /// </summary>
        /// <param name="recipientEmailAddress">收件人 Email</param>
        /// <param name="passwordResetEmailModel">密碼重設信的資料</param>
        public void SendPasswordResetEmail(string recipientEmailAddress, PasswordResetEmailModel passwordResetEmailModel)
        {
            MailMessage mail = new MailMessage(this.SenderEmailAddress, new MailAddress(recipientEmailAddress));

            mail.Subject    = $"重設您在 {GlobalConfig.WebsiteName} 的密碼";
            mail.Body       = this.GenerateMailBody("PasswordReset", passwordResetEmailModel);
            mail.IsBodyHtml = true;

            this.SmtpClient.Send(mail);
        }
예제 #3
0
        public async Task SendPasswordResetEmail(PasswordResetEmailModel model)
        {
            string templateId = _configuration["MailJet:PasswordResetTemplateId"];
            var    message    = new Message
            {
                TemplateId = int.Parse(templateId),
                From       = new From {
                    Email = _fromAddress, Name = "Save On Clouds!"
                },
                To = new[] { new To {
                                 Email = model.ToAddress, Name = model.Name
                             } },
                Variables = new Variables {
                    EmailConfirmUrl = model.PasswordResetUrl, SiteUrl = model.SiteUrl
                }
            };

            await Send(message);
        }
예제 #4
0
        public ActionResponse SendPasswordRecoveryEmail(PasswordResetEmailModel model)
        {
            ActionResponse response = new ActionResponse();

            try
            {
                MailMessage mailMessage = new MailMessage();
                mailMessage.IsBodyHtml = true;
                mailMessage.From       = new MailAddress(this.emailFrom, senderName);
                string emailMessage = this.GetPasswordResetMessage(model.Email, model.FullName, model.Token, model.Url);
                mailMessage.To.Add(model.Email);
                mailMessage.Body    = emailMessage;
                mailMessage.Subject = "Password Reset Request AIMS Somalia";
                client.Send(mailMessage);
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;
                response.Success = false;
            }
            return(response);
        }