public ActionResult GetViewToken(string email) { var validator = new IsEmailAttribute(); if (!validator.IsValid(email)) { return(ResultData(null, false, validator.ErrorMessage)); } if (RedisHelper.Exists("get:" + email)) { RedisHelper.Expire("get:" + email, 120); return(ResultData(null, false, "发送频率限制,请在2分钟后重新尝试发送邮件!请检查你的邮件,若未收到,请检查你的邮箱地址或邮件垃圾箱!")); } if (!UserInfoService.Any(b => b.Email.Equals(email))) { return(ResultData(null, false, "您目前没有权限访问这个链接,请联系站长开通访问权限!")); } var token = SnowFlake.GetInstance().GetUniqueShortId(6); RedisHelper.Set("token:" + email, token, 86400); BackgroundJob.Enqueue(() => CommonHelper.SendMail(Request.Host + "博客访问验证码", $"{Request.Host}本次验证码是:<span style='color:red'>{token}</span>,有效期为24h,请按时使用!", email, ClientIP)); RedisHelper.Set("get:" + email, token, 120); return(ResultData(null)); }
public async Task <ActionResult> SendCode(string email) { var validator = new IsEmailAttribute(); if (!validator.IsValid(email)) { return(ResultData(null, false, validator.ErrorMessage)); } if (await RedisHelper.ExistsAsync("get:" + email)) { await RedisHelper.ExpireAsync("get:" + email, 120); return(ResultData(null, false, "发送频率限制,请在2分钟后重新尝试发送邮件!请检查你的邮件,若未收到,请检查你的邮箱地址或邮件垃圾箱!")); } string code = SnowFlake.GetInstance().GetUniqueShortId(6); await RedisHelper.SetAsync("code:" + email, code, 86400); BackgroundJob.Enqueue(() => CommonHelper.SendMail(Request.Host + "博客验证码", $"{Request.Host}本次验证码是:<span style='color:red'>{code}</span>,有效期为24h,请按时使用!", email, ClientIP)); await RedisHelper.SetAsync("get:" + email, code, 120); #if !DEBUG return(ResultData(null, true, "验证码发送成功!")); #else return(ResultData(null, true, "验证码:" + code)); #endif }