public ActionResult Subscribe(string email)
        {
            if (bool.TryParse(CommonHelper.SystemSettings["DisabledEmailBroadcast"], out var disabled) && disabled)
            {
                return(ResultData(null, false, CommonHelper.SystemSettings["DisabledEmailBroadcastTip"]));
            }
            Broadcast entity = BroadcastService.GetFirstEntity(b => b.Email.Equals(email, StringComparison.InvariantCultureIgnoreCase));
            var       guid   = Guid.NewGuid();

            if (entity != null)
            {
                if (entity.Status == Status.Subscribed)
                {
                    return(ResultData(null, false, "您已经订阅过了,无需再重复订阅!"));
                }
                entity.ValidateCode = guid.ToString();
                entity.UpdateTime   = DateTime.Now;
                BroadcastService.UpdateEntity(entity);
            }
            else
            {
                BroadcastService.AddEntity(new Broadcast()
                {
                    Email        = email,
                    ValidateCode = guid.ToString(),
                    Status       = Status.Subscribing,
                    UpdateTime   = DateTime.Now
                });
            }
            try
            {
                var    ts   = DateTime.Now.GetTotalMilliseconds();
                string link = Url.Action("Subscribe", "Subscribe", new
                {
                    email,
                    act      = "verify",
                    validate = guid,
                    timespan = ts,
                    hash     = (email + "verify" + guid + ts).AESEncrypt(AppConfig.BaiduAK)
                }, "http");
                BackgroundJob.Enqueue(() => CommonHelper.SendMail(CommonHelper.SystemSettings["Title"] + "博客订阅:" + Request.Host, System.IO.File.ReadAllText(_hostingEnvironment.WebRootPath + "/template/subscribe.html").Replace("{{link}}", link), email));
                BroadcastService.SaveChanges();
                return(ResultData(null, message: "订阅成功,请打开您的邮箱确认操作后便可收到订阅更新!"));
            }
            catch (Exception e)
            {
                LogManager.Error(GetType(), e);
                return(ResultData(null, false, "订阅失败,这可能是服务器出现了一点问题,去留言板给站长反馈吧!"));
            }
        }
        /// <summary>
        /// 邮箱订阅
        /// </summary>
        /// <param name="email"></param>
        /// <param name="act"></param>
        /// <param name="validate"></param>
        /// <param name="timespan"></param>
        /// <param name="hash"></param>
        /// <returns></returns>
        public ActionResult Subscribe(string email, string act, string validate, double timespan, string hash)
        {
            var ts = DateTime.Now.GetTotalMilliseconds();

            if (ts - timespan > 86400000)
            {
                return(Content("链接已失效"));
            }
            var hash2 = (email + act + validate + timespan).AESEncrypt(AppConfig.BaiduAK);

            if (!hash2.Equals(hash))
            {
                return(Content("操作失败,链接已被非法篡改"));
            }
            Broadcast entity = BroadcastService.GetFirstEntity(b => b.Email.Equals(email, StringComparison.InvariantCultureIgnoreCase) && b.ValidateCode.Equals(validate));

            if (entity != null)
            {
                switch (act)
                {
                case "verify":
                    entity.Status       = Status.Subscribed;
                    entity.ValidateCode = Guid.NewGuid().ToString();
                    entity.UpdateTime   = DateTime.Now;
                    BroadcastService.UpdateEntity(entity);
                    BroadcastService.SaveChanges();
                    return(Content("订阅成功!"));

                case "cancel":
                    entity.Status     = Status.Canceled;
                    entity.UpdateTime = DateTime.Now;
                    BroadcastService.UpdateEntity(entity);
                    BroadcastService.SaveChanges();
                    return(Content("取消订阅成功,您将不会再接收到文章更新,如果您以后需要再次接收更新推送,可以到主站点重新进行订阅操作!"));

                default: return(RedirectToAction("Index", "Home"));
                }
            }
            return(Content("该邮箱账户未使用邮件订阅!"));
        }