asp.net注册发邮件激活

来源:互联网 发布:广州天际网络 编辑:程序博客网 时间:2024/05/11 13:57

1、在数据库的用户信息表中加一字段XXX,单击注册时注册时默认添加为false

2、新建一个Web页面 WebForm1.aspx,前台告诉用户激活成功,后台写

        protected void Page_Load(object sender, EventArgs e)
        {
           string user= Request.QueryString["Code"];//传过来的用户名 亦可以是唯一标示符。
            string sql = ConfigurationManager.ConnectionStrings["sqlserverstr"].ConnectionString;  
            SqlConnection conn = new SqlConnection(sql);
            conn.Open();
            SqlCommand cmd = conn.CreateCommand();
            cmd.CommandText = "update T_User set kaitong=@kaitong where UserName=@username";//修改用户表中默认false的字段为true
            cmd.Parameters.AddWithValue("username", user);
            cmd.Parameters.AddWithValue("@kaitong", "true");
            int result = cmd.ExecuteNonQuery();
            if (result > 0)
            {
                Response.Write("<script>alert('激活成功!')</script>");
            }
        }

3、 定义一个方法  

      private void email()

        {
            try
            {
                string from = "XXXXX@XX.com";//发送者邮箱地址
                string fromPwd = "XXXXXX"; //发送者邮箱密码
                string to = txbEmail.Text; //接收者邮箱地址 
                string subject = "发送邮件测试"; //标题
                string authCode = Guid.NewGuid().ToString(); //验证码
                string user1 = txbUserName.Text;//将注册姓名传到激活页面
                string sendContent = @"<a href='http://localhost:1635/WebForm1.aspx?Code=" + user1
                 + "'>http://localhost:1635/WebForm1.aspx?Code=" + user1 + "</a>";//邮件内容,一个激活链接,WebForm1是激活页面。可以加上Guid.NewGuid(),全球唯一标示符
                MailMessage mailObj = new MailMessage(from, to);
                mailObj.Subject = subject;
                mailObj.Body = sendContent;
                mailObj.BodyEncoding = System.Text.Encoding.UTF8;
                mailObj.IsBodyHtml = true;
                mailObj.Priority = MailPriority.High;
                SmtpClient smtp = new SmtpClient("smtp.qq.com");
                smtp.Credentials = new NetworkCredential(from, fromPwd);
                smtp.Send(mailObj);
                Response.Write("<script language='javascript'> alert('发送成功!')</script>");


            }
            catch (Exception ex)
            {
                Response.Write("发送邮件失败," + ex.Message.ToString());
            }

        }

       在注册的单击事件中调用此方法。在向数据库赋值添加完注册信息以后调用。

 以上就完成了激活过程,再在登陆页面加验证,用户名密码正确后,查询此字段,字段为false就提示用户到邮箱激活,可再加超链接,字段为true就登陆成功。