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, "订阅失败,这可能是服务器出现了一点问题,去留言板给站长反馈吧!")); } }