Пример #1
0
 /// <summary>
 /// 发送提醒
 /// </summary>
 /// <param name="userReminderInfos">用户提醒信息</param>
 public void SendReminder(IList<UserReminderInfo> userReminderInfos)
 {
     if (userReminderInfos == null || userReminderInfos.Count == 0)
         return;
     UserReminderInfo userReminderInfo = userReminderInfos.First();
     IUserService userService = DIContainer.Resolve<IUserService>();
     IUser user = userService.GetUser(userReminderInfo.UserId);
     if (user != null)
     {
         EmailService emailService = new EmailService();
         emailService.Enqueue(EmailBuilder.Instance().Reminder(userReminderInfos, user));
     }
 }
Пример #2
0
        /// <summary>
        /// 转换为数据存储实体
        /// </summary>
        /// <returns></returns>
        public SmtpSettings AsSmtpSettings()
        {
            SmtpSettings settings = new SmtpSettings();
            if (this.Id > 0)
                settings = new EmailService().GetSmtpSettings(this.Id);

            settings.Host = this.Host;
            settings.DailyLimit = this.DailyLimit;
            settings.EnableSsl = this.EnableSsl;
            settings.ForceSmtpUserAsFromAddress = this.ForceSmtpUserAsFromAddress;
            settings.Host = this.Host;
            settings.Password = this.Password;
            settings.Port = this.Port;
            settings.RequireCredentials = this.RequireCredentials;
            settings.UserEmailAddress = this.UserEmailAddress;
            settings.UserName = this.UserName;

            return settings;
        }
Пример #3
0
        public ActionResult ActivateByEmail(ActivateByEmail model)
        {
            if (string.IsNullOrEmpty(model.Token))
                return Json(SiteUrls.Instance().SystemMessage());

            if (!ModelState.IsValid)
                return Json(new StatusMessageData(StatusMessageType.Error, "验证码填写错误,发送失败"));

            bool isTimeout = false;
            long userId = Utility.DecryptTokenForValidateEmail(model.Token, out isTimeout);
            if (isTimeout)
            {
                return Json(SiteUrls.Instance().SystemMessage(TempData, new SystemMessageViewModel
                {
                    Title = "链接已经失效",
                    Body = "您使用的链接已经失效,请重新登陆",
                    StatusMessageType = StatusMessageType.Hint
                }));
            }
            if (userId <= 0)
            {
                return Json(SiteUrls.Instance().SystemMessage(TempData, new SystemMessageViewModel
                {
                    Title = "查找不到对应的用户",
                    Body = "对不起,你访问的用户不存在",
                    StatusMessageType = StatusMessageType.Hint
                }));
            }
            IUser user = userService.GetFullUser(userId);
            User userSaveToDB = user as User;
            if (user.AccountEmail != model.AccountEmail)
            {
                string errorMessage;
                bool isValidateEmail = Utility.ValidateEmail(model.AccountEmail, out errorMessage);
                if (!isValidateEmail)
                {
                    Tunynet.Utilities.WebUtility.SetStatusCodeForError(Response);
                    TempData["StatusMessageData"] = new StatusMessageData(StatusMessageType.Error, Tunynet.Utilities.WebUtility.HtmlDecode(errorMessage));
                    return _ActivateByEmail(model.AccountEmail, model.Token);
                }
                userSaveToDB.AccountEmail = model.AccountEmail;
                userSaveToDB.IsEmailVerified = false;
                membershipService.UpdateUser(userSaveToDB);
            }

            //需要邮箱激活
            try
            {
                System.Net.Mail.MailMessage mailMessage = EmailBuilder.Instance().RegisterValidateEmail(userSaveToDB);
                EmailService emailService = new EmailService();
                //异步发送
                if (emailService.SendAsyn(mailMessage))
                {
                    SiteSettings siteSettings = new SiteSettings();
                    TempData["SendEmailSucceedViewModel"] = SendEmailSucceedViewModelFactory.GetRegisterSendEmailSucceedViewModel(user.AccountEmail);
                    return Json(SiteUrls.Instance().SendEmailSucceed());
                }
            }
            catch (Exception ex)
            {
                LoggerFactory.GetLogger().Log(LogLevel.Error, ex, "创建帐号给用户发送激活邮件时发生错误");
            }
            return Json(SiteUrls.Instance().SystemMessage(TempData, new SystemMessageViewModel
            {
                Title = "发送失败",
                Body = "邮件发送失败",
                StatusMessageType = StatusMessageType.Hint
            }));
        }
Пример #4
0
        private bool SendEmailToContact(List<string> sendEmails)
        {
            if (sendEmails.Count <= 0)
                return false;
            IUser user = authenticationService.GetAuthenticatedUser();
            if (user == null)
                return false;

            EmailService emailService = new EmailService();
            foreach (var contact in sendEmails)
            {
                string code = inviteFriendService.GetInvitationCode(user.UserId);
                if (string.IsNullOrEmpty(code))
                    return false;
                string url = SiteUrls.FullUrl(SiteUrls.Instance().Invite(code));

                System.Net.Mail.MailMessage mailMessage = EmailBuilder.Instance().InviteFriend(contact, url, "我来了,你在那呢?");
                emailService.Enqueue(mailMessage);
            }
            return true;
        }
Пример #5
0
        public ActionResult SendAsyn(string spaceKey)
        {
            User user = userService.GetFullUser(spaceKey);
            if (user == null)
                return HttpNotFound();

            bool sendStatus = false;
            try
            {
                System.Net.Mail.MailMessage mailMessage = EmailBuilder.Instance().RegisterValidateEmail(user);
                EmailService emailService = new EmailService();
                sendStatus = emailService.SendAsyn(mailMessage);
            }
            catch (Exception e)
            {
                ILogger logger = LoggerFactory.GetLogger();
                logger.Error(e, "异步发送激活邮件时报错");
            }

            if (sendStatus)
            {
                TempData["SendEmailSucceedViewModel"] = SendEmailSucceedViewModelFactory.GetRegisterSendEmailSucceedViewModel(user.AccountEmail);
                return Redirect(SiteUrls.Instance().SendEmailSucceed());
            }
            TempData["SendEmailStatus"] = false;
            return RedirectToAction("EditUserProfile", new { spaceKey = spaceKey });
        }
Пример #6
0
        /// <summary>
        /// 发送获取密码Email
        /// </summary>
        /// <remarks>
        /// 由具体实现类来决定是否发送之前是否验证accountEmail与username的匹配性
        /// </remarks>
        /// <param name="accountEmail">帐号密码</param>
        /// <param name="username">用户名</param>
        /// <returns>发送成功返回true,否则返回false</returns>
        public bool SendRecoverPasswordEmail(string accountEmail, string username = null)
        {
            IUserService userService = DIContainer.Resolve<IUserService>();
            IUser user = userService.FindUserByEmail(accountEmail);
            if (user == null)
                return false;

            if (!string.IsNullOrEmpty(username) && !user.UserName.Equals(username, StringComparison.InvariantCultureIgnoreCase))
                return false;

            EmailService emailService = new EmailService();
            //发送忘记密码邮件
            return emailService.SendAsyn(EmailBuilder.Instance().ResetPassword(user));
        }
Пример #7
0
 void UserEmailEventMoudle_After(User sender, CreateUserEventArgs eventArgs)
 {
     EmailService emailService = new EmailService();
     //发送注册成功邮件
     emailService.SendAsyn(EmailBuilder.Instance().RegisterSuccess(eventArgs.Password, sender));
 }