コード例 #1
0
        public void SendUserWelcomeMessage(User user)
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }

            // Send Notification To The User
            var templateSetting = _settingService.GetSettingByKey("UserSignInAttempt");
            var tokens          = new List <DataToken>();

            var template = _templateService.GetTemplateByName(templateSetting.Value);

            _templateService.AddUserTokens(tokens, user);

            foreach (var dt in tokens)
            {
                template.BodyHtml = CodeHelper.Replace(template.BodyHtml.ToString(), $"[{dt.SystemName}]", dt.Value, StringComparison.InvariantCulture);
            }

            var toEmail   = user.Email;
            var toName    = user.GetFullName();
            var fromEmail = _settingService.GetSettingByKey("FromEmail");

            SendNotification(template, tokens, toEmail, toName);
        }
コード例 #2
0
        public ActionResult ForgotPassword(ForgotPasswordModel model)
        {
            if (string.IsNullOrEmpty(model.Emailaddress))
            {
                model.Success = false;
                model.Message = "Please enter a valid email address.";
                return(View(model));
            }

            var user = _userService.GetUserByEmail(model.Emailaddress);

            if (user != null)
            {
                // Get Forgot Password Template
                var configSetting = _settingService.GetSettingByKey("ForgotTemplate");
                if (configSetting != null)
                {
                    var templateName = configSetting.Value;
                    var template     = _templateService.GetTemplateByName(templateName);
                    if (template != null)
                    {
                        var _lstTokens = template.Tokens.ToList();
                        _templateService.AddUserTokens(_lstTokens, user);

                        string passwordLink = Url.ActionEnc("ForgotPassword", "ResetPassword", new { @email = user.Email, @code = user.UserGuid.ToString(), @isreset = false });
                        _emailService.SendUserForgotPasswordMessage(user, passwordLink);
                        SuccessNotification("A password change request has been sent on your email address. Please follow instructions written in the mail.");
                    }
                }
                else
                {
                    ErrorNotification("Configuration Template setting not available, contact administrator.");
                }
            }

            return(RedirectToAction("Login"));
        }