/// <summary> /// 激活 /// </summary> private static void Activation() { var users = new List <User>(); lock (lockObj) { using (var db = new ResumeMatchDBEntities()) { db.UsingTransaction(() => { var time = DateTime.UtcNow.AddHours(-1); users = db.User.Where(w => w.Status == 0 && w.Platform == 3 && (!w.IsLocked || w.IsLocked && w.LockedTime < time)).ToList(); foreach (var user in users) { user.IsLocked = true; user.LockedTime = DateTime.UtcNow; } db.SaveChanges(); }); } } if (users.Count == 0) { return; } #region 获取未读邮件列表 var seenUids = new List <string>(); var messages = EmailFactory.FetchUnseenMessages("pop.exmail.qq.com", 995, true, Global.Email, Global.PassWord, seenUids); using (var db = new ResumeMatchDBEntities()) { var userIdArr = users.Select(s => s.Id).ToArray(); var userList = db.User.Where(w => userIdArr.Any(a => a == w.Id)); foreach (var user in userList) { user.IsLocked = false; var message = messages.FirstOrDefault(f => f.message.Headers.To.FirstOrDefault()?.Address == user.Email); if (message == null) { continue; } var content = Encoding.Default.GetString(message.message.RawMessage); if (!Regex.IsMatch(content, "(?s)token=(.+?)</a>")) { LogFactory.Error($"未匹配到激活码!响应源:{content}", MessageSubjectEnum.JianLiKa); continue; } var activationCode = Regex.Match(content, "(?s)token=(.+?)</a>").Result("$1").Substring(2); var host = string.Empty; //if (Global.IsEnanbleProxy) //{ // if (!string.IsNullOrWhiteSpace(user.Host)) // { // host = user.Host; // GetProxy("JLK_Activation",user.Host); // } //} var dataResult = Activation(activationCode, user.Email, host); //ReleaseProxy("JLK_Activation", host); if (dataResult == null) { continue; } if (!dataResult.IsSuccess) { LogFactory.Error(dataResult.ErrorMsg, MessageSubjectEnum.JianLiKa); continue; } user.Status = 1; LogFactory.Info($"激活成功!邮箱:{user.Email}", MessageSubjectEnum.JianLiKa); if (!EmailFactory.DeleteMessageByMessageId("pop.exmail.qq.com", 995, true, Global.Email, Global.PassWord, message.message.Headers.MessageId)) { LogFactory.Error($"删除激活邮件失败,邮箱地址:{user.Email}", MessageSubjectEnum.JianLiKa); } } db.TransactionSaveChanges(); } #endregion }
/// <summary> /// 激活 /// </summary> /// <returns></returns> private DataResult Activation() { var dataResult = new DataResult(); using (var db = new ResumeRepairDBEntities()) { var list = db.FenJianLi.Where(w => !w.IsActivation).ToList(); if (list.Count == 0) { return(dataResult); } #region 获取未读邮件列表 var seenUids = new List <string>(); var messages = EmailFactory.FetchUnseenMessages("pop.exmail.qq.com", 995, true, Global.Email, Global.PassWord, seenUids); foreach (var userEmail in list) { var message = messages.FirstOrDefault(f => f.message.Headers.To.FirstOrDefault()?.Address == userEmail.Email); if (message == null) { //dataResult.IsSuccess = false; //dataResult.ErrorMsg += $"获取激活邮件失败!,找不到邮件!邮箱地址:{userEmail.Email}"; continue; } var content = Encoding.Default.GetString(message.message.RawMessage); var url = string.Empty; if (Regex.IsMatch(content, "(?s)code=(.+?)</a>")) { url = "http://www.fenjianli.com/register/checkEmailOfCode.htm?code=" + Regex.Match(content, "(?s)code=(.+?)</a>").Result("$1").Substring(2); } var html = RequestFactory.QueryRequest(url); if (!html.Contains("成功")) { dataResult.IsSuccess = false; dataResult.ErrorMsg += $"激活失败!,邮箱地址:{userEmail.Email}{Environment.NewLine}"; continue; } userEmail.IsActivation = true; FenJianLiScheduling.ssf.SetText(FenJianLiScheduling.ssf.fjl_tbx_RegisterActivation, $"激活成功!邮箱:{userEmail.Email}"); if (!EmailFactory.DeleteMessageByMessageId("pop.exmail.qq.com", 995, true, Global.Email, Global.PassWord, message.message.Headers.MessageId)) { FenJianLiScheduling.ssf.SetText(FenJianLiScheduling.ssf.fjl_tbx_RegisterActivation, $"删除激活邮件失败,邮箱地址:{userEmail.Email}"); } } #endregion db.SaveChanges(); } return(dataResult); }
/// <summary> /// 激活 /// </summary> private void Activation() { var users = new List <User>(); lock (lockObj) { using (var db = new ResumeMatchDBEntities()) { db.UsingTransaction(() => { var time = DateTime.UtcNow.AddHours(-1); users = db.User.Where(w => w.Status == 0 && w.Platform == 4 /*&& (!w.IsLocked || w.IsLocked && w.LockedTime < time)*/).ToList(); foreach (var user in users) { user.IsLocked = true; user.LockedTime = DateTime.UtcNow; } db.SaveChanges(); }); } } if (users.Count == 0) { return; } #region 获取未读邮件列表 var seenUids = new List <string>(); var messages = EmailFactory.FetchUnseenMessages("pop.exmail.qq.com", 995, true, Global.Email, Global.PassWord, seenUids); using (var db = new ResumeMatchDBEntities()) { var userIdArr = users.Select(s => s.Id).ToArray(); var userList = db.User.Where(w => userIdArr.Any(a => a == w.Id)); foreach (var user in userList) { user.IsLocked = false; var message = messages.FirstOrDefault(f => f.message.Headers.To.FirstOrDefault()?.Address == user.Email && f.message.Headers.From.Address == "*****@*****.**"); if (message == null) { continue; } var content = Encoding.UTF8.GetString(message.message.FindFirstHtmlVersion().Body); if (!Regex.IsMatch(content, "(?s)完成验证.+?com/track/click/(.+?html)")) { LogFactory.Error($"未匹配到激活码!响应源:{content}", MessageSubjectEnum.ZhaoPinGou); continue; } var url = "http://sctrack.info.zhaopingou.com/track/click/" + Regex.Match(content, "(?s)完成验证.+?com/track/click/(.+?html)\".style").Result("$1"); var host = string.Empty; //if (Global.IsEnanbleProxy) //{ // if (!string.IsNullOrWhiteSpace(user.Host)) // { // host = user.Host; // GetProxy("ZPG_Activation",user.Host); // } //} var dataResult = Activation(url, user.Email, host); //ReleaseProxy("ZPG_Activation", host); if (dataResult == null) { continue; } if (!dataResult.IsSuccess) { LogFactory.Error(dataResult.ErrorMsg, MessageSubjectEnum.ZhaoPinGou); continue; } user.Status = 1; LogFactory.Info($"激活成功!邮箱:{user.Email}", MessageSubjectEnum.ZhaoPinGou); if (!EmailFactory.DeleteMessageByMessageId("pop.exmail.qq.com", 995, true, Global.Email, Global.PassWord, message.message.Headers.MessageId)) { LogFactory.Error($"删除激活邮件失败,邮箱地址:{user.Email}", MessageSubjectEnum.ZhaoPinGou); } } db.TransactionSaveChanges(); } #endregion }
private DataResult Activation() { var dataResult = new DataResult(); using (var db = new ResumeRepairDBEntities()) { var list = db.Pin101.Where(w => !w.IsActivation).ToList(); if (list.Count == 0) { return(dataResult); } #region 获取未读邮件列表 var seenUids = new List <string>(); var messages = EmailFactory.FetchUnseenMessages("pop.exmail.qq.com", 995, true, Global.Email, Global.PassWord, seenUids); foreach (var userEmail in list) { var message = messages.FirstOrDefault(f => f.message.Headers.To.FirstOrDefault()?.Address == userEmail.Email); if (message == null) { //dataResult.IsSuccess = false; //dataResult.ErrorMsg += $"获取激活邮件失败!,找不到邮件!邮箱地址:{userEmail.Email}"; continue; } var content = Encoding.UTF8.GetString(message.message.FindFirstHtmlVersion().Body); var url = string.Empty; //var referer = string.Empty; //if (Regex.IsMatch(content, "(?s)(http://sctrack.+?html)")) //{ // url = Regex.Match(content, "(?s)(http://sctrack.+?html)").Result("$1"); //} if (Regex.IsMatch(content, "(?s)php\\?s=(.+?/istype/\\d+)")) { url = "http://www.101pin.com/index.php?s=" + Regex.Match(content, "(?s)php\\?s=(.+?/istype/\\d+)").Result("$1"); } var html = RequestFactory.QueryRequest(url, accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"); if (!html.Contains("成功")) { dataResult.IsSuccess = false; dataResult.ErrorMsg += $"激活失败!,邮箱地址:{userEmail.Email}{Environment.NewLine}"; continue; } userEmail.IsActivation = true; Pin101Scheduling.ssf.SetText(Pin101Scheduling.ssf.fjl_tbx_RegisterActivation, $"激活成功!邮箱:{userEmail.Email}"); if (!EmailFactory.DeleteMessageByMessageId("pop.exmail.qq.com", 995, true, Global.Email, Global.PassWord, message.message.Headers.MessageId)) { Pin101Scheduling.ssf.SetText(Pin101Scheduling.ssf.fjl_tbx_RegisterActivation, $"删除激活邮件失败,邮箱地址:{userEmail.Email}"); } } #endregion db.SaveChanges(); } return(dataResult); }