MVC简单的注册模块(邮箱验证)

  • 注册那块有点啰嗦凑合看吧
  • 主要就是如何发邮箱

前台代码

//引入强类型
@model UserSys.Models.UC_User

<h2>注册</h2>
<div id="register">
    @using (Html.BeginForm("Register", "User", FormMethod.Post)) {
        <div class="form-group">
            @Html.TextBoxFor(M => M.UserName, new { @class = "form-control", placeholder = "用户名" })
        </div>
        <div class="form-group">
            @Html.TextBoxFor(M => M.UserNickName, new { @class = "form-control", placeholder = "用户昵称" })
        </div>
        <div class="form-group">
            @Html.TextBoxFor(M => M.DateOfBirth, new { @class = "form-control", placeholder = "出生年月" })
        </div>
        <div class="form-group">
            @Html.TextBoxFor(M => M.EMailAddress, new { @class = "form-control", placeholder = "邮箱地址" })
        </div>
        <div class="form-group">
            <button type="button" class="btn" onclick="getNum()">获取激活码</button>
        </div>
        <div class="form-group">
            @Html.TextBoxFor(M => M.CDKEY, new { @class = "form-control", placeholder = "激活码"})<span id="Msg"></span>
            @Html.ValidationMessageFor(M => M.CDKEY)
        </div>
        <button type="submit" class="btn btn-primary" >注册</button>
    }
</div>
@section scripts{
    <script>
        //获取激活码
        function getNum() {
            //取邮箱地址
            var em = $("#EMailAddress").val();
            //请求发送邮箱
            $.ajax({
                url: "/User/SendMail",
                type: "POST",
                dataType: "text",
                data: {
                    email:em
                },
                success: function (data) {     
                        alert('发送成功');
                }
            });
        }
    </script>
    
    }

后台代码

 public class UserController : Controller {
 		//注册模块
		public ActionResult Register() {
            return View();
        }
        //提交注册
        [HttpPost]
        public ActionResult Register(UC_User uc_User) {
        	//验证相关的特性
            if (ModelState.IsValid) {
            	//注册时间
                uc_User.CreateOn = DateTime.Now;
                try {
                    using (var db = new UserModel()) {
                        //检查激活码是否被使用过
                        if (Uitl.CheckValidationLog(uc_User)) {
                            //检查是否有重复的用户名
                            if (Uitl.CheckUserName(uc_User)) {
                                db.UC_User.Add(uc_User);
                                db.SaveChanges();
                                return Content("<script>alert('注册成功')</script>");
                            }
                            else {
                                return Content("<script>alert('此用户名已存在')</script>");
                            }
                        }
                        else {
                            return Content("<script>alert('激活码已被使用')</script>");
                        }
                    }
                }
                catch (Exception e) {
               	 	//报错
                    return Content($"<script>alert('{e.Message}')</script>");
                }
            }
            return View();
        }
}

后台请求邮箱方法

 		/// <summary>
        /// 发送邮箱
        /// </summary>
        /// <param name="email">需要发送到的邮箱地址</param>
        /// <returns></returns>
       [HttpPost]
        public string SendMail(string email) {
           //这边是一个日志的存储
			string str=Uitl.GetNum().ToString();//获取激活码
			//日志实体类
            UC_ValidationLog uC_Validation = new UC_ValidationLog();
            uC_Validation.GetCDKEY = str;//激活码
            uC_Validation.ZhuangTai = false;//是否使用过激活码
            uC_Validation.Timer = DateTime.Now;//生成激活码的时间
            using (var db=new UserModel()) {
                db.UC_ValidationLog.Add(uC_Validation);//添加到日志
                db.SaveChanges();//保存
            } 


			//从这里开始是邮件发送 上面的东西不必写
            MailMessage msg = new MailMessage();//创建邮箱信息对象
            msg.To.Add(email);//收件人的邮箱
            //3个参数分别是发件人地址(可以随便写),发件人姓名,编码
            msg.From = new MailAddress("*****@163.com", "**先生", System.Text.Encoding.UTF8);
            msg.Subject = "激活码";//邮件标题    
            msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码    
            msg.Body = "验证码为:"+str;//邮件内容    
            msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码    
            msg.IsBodyHtml = false;//是否是HTML邮件    
            msg.Priority = MailPriority.High;//邮件优先级    
            SmtpClient client = new SmtpClient();//smtp客户端
            //注册的邮箱和密码(授权码)
            client.Credentials = new System.Net.NetworkCredential("******@163.com", "这里是授权码或者密码");
            //在163邮箱可以查看服务器地址
            client.Host = "smtp.163.com";//服务器
            try {
                client.Send(msg);
                return str;
            }
            catch (System.Net.Mail.SmtpException ex) {
                return ex.Message;
            }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值