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));
        }
示例#2
0
        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);
        }