コード例 #1
0
        public static bool SendEmail(IDictionary<string,object> context, string email, string templateName, Action<EmailMessage> defaultMessage = null)
        {

            //Get template
            var template = TemplateService.ProcessTemplate(templateName, context, CultureInfo.CreateSpecificCulture(CustomerSession.Language));

            //Create email message
            var emailMessage = new EmailMessage();
            emailMessage.To.Add(email);


            if (template != null)
            {
                emailMessage.Html = template.Body;
                emailMessage.Subject = template.Subject;
            }
            else if (defaultMessage != null)
            {
                //Use default template
                 defaultMessage(emailMessage);
            }

            //UserSecurity.UserManager.SendEmailAsync()

            //Send email
            return EmailService.SendEmail(emailMessage);
        }
コード例 #2
0
ファイル: UserHelper.cs プロジェクト: rdi-drew/vc-community
        public static bool SendEmail(string linkUrl, string user, string email, string templateName, Action<EmailMessage> defaultMessage)
	    {

            //Get template
            var context = new Dictionary<string, object> { { templateName, new SendEmailTemplate { Url = linkUrl, Username = user } } };
            var template = TemplateService.ProcessTemplate(templateName, context, CultureInfo.CreateSpecificCulture(UserHelper.CustomerSession.Language));

            //Create email message
            var emailMessage = new EmailMessage();
            emailMessage.To.Add(email);


            if (template != null)
            {
                emailMessage.Html = template.Body;
                emailMessage.Subject = template.Subject;
            }
            else
            {
                //Use default template
                defaultMessage(emailMessage);
            }

            //Send email
            return EmailService.SendEmail(emailMessage);
	    }
コード例 #3
0
        public ActionResult ForgotPassword(ForgotPasswordModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var account = _userClient.GetAccountByUserName(model.UserName);

                    if (account == null)
                    {
                        TempData[GetMessageTempKey(MessageType.Error)] = new[] { "Such account does not exist in our database".Localize() };
                        return RedirectToAction("LogOn");
                    }

                    if (account.RegisterType == (int)RegisterType.Administrator || account.RegisterType == (int)RegisterType.SiteAdministrator)
                    {
                        //The message is tricky in purpose so that no one could guess admins username!!!
                        TempData[GetMessageTempKey(MessageType.Error)] = new[] { "Such account does not exist in our database".Localize() };
                        return RedirectToAction("LogOn");
                    }

                    //Get reset token
                    var token = _webSecurity.GeneratePasswordResetToken(model.UserName);

                    //Collect data
                    var contact = _userClient.GetCustomer(account.MemberId);
                    var linkUrl = Url.Action("ResetPassword", "Account", new { token }, Request.Url.Scheme);
                    var userName = contact != null ? contact.FullName : model.UserName;
                    //User name can also be an email in most cases
                    var email = UserHelper.GetCustomerModel(contact).Email ?? model.UserName;

                    //Get template
                    var context = new Dictionary<string, object>() { { "ResetPasswordTemplate", new ResetPasswordTemplate { Url = linkUrl, Username = userName } } };
                    var template = _templateService.ProcessTemplate("forgot-password", context, CultureInfo.CreateSpecificCulture(UserHelper.CustomerSession.Language));

                    //Create email message
                    var emailMessage = new EmailMessage();
                    emailMessage.To.Add(email);


                    if (template != null)
                    {
                        emailMessage.Html = template.Body;
                        emailMessage.Subject = template.Subject;
                    }
                    else
                    {
                        //Use default template
                        emailMessage.Html =
                            string.Format(
                                "<b>{0}</b> <br/><br/> To change your password, click on the following link:<br/> <br/> <a href='{1}'>{1}</a> <br/>",
                                userName,
                                linkUrl);

                        emailMessage.Subject = "Reset password";
                    }

                    //Send email
                    _emailService.SendEmail(emailMessage);

                    TempData[GetMessageTempKey(MessageType.Success)] = new[] { "The reset password link was generated. Check you email to reset password.".Localize() };
                }
                catch (Exception ex)
                {
                    TempData[GetMessageTempKey(MessageType.Error)] = new[] { ex.Message };
                }
            }
            return RedirectToAction("LogOn");
        }