public async Task <JsonResult> SettingEmail(string email) { var data = new PyStudioPromptData(); if (string.IsNullOrWhiteSpace(email)) { data.IsOK = 2; data.Msg = "请输入邮箱!"; return(Json(data)); } email = email.Trim(); if (email.Length >= 50 || email.Length <= 3) { data.IsOK = 2; data.Msg = "邮箱长度不符!"; return(Json(data)); } else if (!email.Contains("@")) { data.IsOK = 2; data.Msg = "邮箱格式不正确!"; return(Json(data)); } var timeOut = 30; var now = DateTime.Now.AddMinutes(timeOut); var expires = now.ToString("yyyy-MM-dd hh:mm:ss"); var token = $"{expires}-{email}-{Request.Host.Host}-{_MyUserInfo.UserId}"._Md5(); var appUrl = $"http://{Request.Host.Host}:{Request.Host.Port}"; var comfirmUrl = $"{appUrl}/Admin/UserCenter/ConfirmSettingEmail?expire={expires}&token={token}&email={email}&t=0.9527{_MyUserInfo.UserId}"; //读取邮箱模版 var tpl = await ExtentionsClass._GetHtmlTpl(EmEmailTpl.SettingEmail, $"{_hostingEnvironment.WebRootPath}/{_pySelfSetting.EmailTplPath}"); if (string.IsNullOrWhiteSpace(tpl)) { data.IsOK = 0; data.Msg = "发送绑定邮件失败,请稍后再试!"; return(Json(data)); } string name = _MyUserInfo.UserNickName; if (string.IsNullOrWhiteSpace(name)) { name = _MyUserInfo.UserName; } tpl = tpl.Replace("{name}", name).Replace("{content}", $"您正在使用<a href='{appUrl}'>PyStudio交易网</a>邮箱绑定功能<a href='{comfirmUrl}'>{comfirmUrl}</a>;注意该地址有效时间{timeOut}分钟。"); //发送 var isOk = ExtentionsClass._SendEmail(new Dictionary <string, string> { { name, email } }, "PyStudio交易网", tpl); data.IsOK = isOk ? 1 : 0; data.Msg = isOk ? "已给您邮箱发送了绑定确认邮件,请收件后点击确认绑定链接地址。" : "发送绑定邮件失败,请稍后重试!"; return(Json(data)); }
public async Task <PyStudioPromptData> ForgetPassword(string email) { var data = new PyStudioPromptData(); if (string.IsNullOrWhiteSpace(email)) { data.IsOK = 2; data.Msg = "请输入邮箱!"; return(data); } email = email.Trim().ToLower(); if (email.Length >= 50 || email.Length <= 3) { data.IsOK = 2; data.Msg = "邮箱长度不符!"; return(data); } else if (!email.Contains("@")) { data.IsOK = 2; data.Msg = "邮箱格式不正确!"; return(data); } var userInfo = await _context.InfoUser.SingleOrDefaultAsync(m => m.UserEmail.ToLower() == email); if (userInfo == null) { data.IsOK = 0; data.Msg = "找不到绑定该邮箱的账号!"; return(data); } else if (userInfo.UserStatus == (int)EmUserStatus.禁用) { data.IsOK = 0; data.Msg = "该邮箱已被封禁,您可以通过发送邮件至:[email protected] 联系管理员!"; return(data); } var timeOut = 10; var now = DateTime.Now.AddMinutes(timeOut); var expires = now.ToString("yyyy-MM-dd hh:mm"); var token = $"{expires}-{email}-{Request.Host.Host}"._Md5(); var appUrl = $"http://{Request.Host.Host}:{Request.Host.Port}"; var comfirmUrl = $"{appUrl}/Admin/Account/ConfirmPassword?expire={expires}&token={token}&={email}&t=0.{now.ToString("ssfff")}"; //读取模版 var tpl = await ExtentionsClass._GetHtmlTpl(EmEmailTpl.MsgBox, $"{_hostingEnvironment.WebRootPath}/{_selfSetting.EmailTplPath}"); if (string.IsNullOrWhiteSpace(tpl)) { data.IsOK = 0; data.Msg = "发送绑定邮箱失败,请稍后重试。"; return(data); } tpl = tpl.Replace("{name}", $"尊敬的用户{userInfo.UserNickName}") .Replace("{content}", $"您正在使用 <a href = '{appUrl}'>PyStudio</a> 邮箱重置密码功能,请点击以下链接确认绑定邮箱 <a href = '{comfirmUrl}'>{ comfirmUrl}</a>;注意该地址有效时间{timeOut}分钟。"); var isOk = ExtentionsClass._SendEmail(new Dictionary <string, string> { { $"尊敬的用户{userInfo.UserNickName}", email } }, "PyStudio - 重置密码", tpl); data.IsOK = isOk ? 1 : 0; data.Msg = isOk ? "已给您邮箱发送了绑定确认邮件,请收件后点击确认绑定链接地址。" : "发送绑定邮件失败,请稍后重试!"; return(data); }