思路:1.数据库加两个字,state字段(0:未激活,1:激活成功),ActiCode:(放激活码)2.用户填写资料,插入数据成功,state字段默认是0,同时生成一个ActiCode也存入数据库3.提示用户激活发送邮件邮件中带一个激活成功页的URL,URL里有两个参数(1,用户ID,2:激活码)4.用户点击链接,回到激活成功页激活成功页的Load事件,得到两个参数,以这两个参数为条件查询数据库里的数据,如果有,修改字段state为1,反之。。提示激活失败,重新激活。。

解决方案 »

  1.   

    //这是发送邮件的
    //Body里放A标签(前提是IsBodyHtml 设为true,才会允许发送HTML格式的)
            #region        
            public static void Sends(string email) 
            {
                string formto = "发件箱地址";
                string to = email;   //接收邮箱
                string content = "";
                string body = "";
                string name = "发件箱";
                string upass = "密码";
                string smtp = "smtp地址";
                SmtpClient _smtpClient = new SmtpClient();            
                _smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
                _smtpClient.Host = smtp; //指定SMTP服务器
                _smtpClient.Credentials = new System.Net.NetworkCredential(name, upass);//用户名和密码
                MailMessage _mailMessage = new MailMessage();
                //发件人,发件人名 
                _mailMessage.From = new MailAddress(formto, "别名");
                //收件人 
                _mailMessage.To.Add(to);
                _mailMessage.SubjectEncoding = System.Text.Encoding.GetEncoding("gb2312");
                _mailMessage.Subject = content;//主题            _mailMessage.Body = body;//内容
                _mailMessage.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");//正文编码
                _mailMessage.IsBodyHtml = true;//设置为HTML格式
                _mailMessage.Priority = MailPriority.High;//优先级   
                try
                {
                    _smtpClient.Send(_mailMessage);
                }
                catch (Exception)
                {
                                    
                }
                
            }
            #endregion
      

  2.   

    using System.Net.Mail;public partial class jqueryText_Limit : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            MailAddress MessageFrom = new MailAddress("[email protected]"); //发件人邮箱地址 
            string MessageTo = "[email protected]"; //收件人邮箱地址 
            string MessageSubject = "邮件主题"; //邮件主题 
    string MessageBody = "请进行邮箱验证来完成您注册的最后一步,点击下面的链接激活您的帐号:<br><a target='_blank' rel='nofollow' style='color: #0041D3; text-decoration: underline' href='http://www.ipyy.net/regeditOK.aspx'>激活</a>"; //邮件内容 (一般是一个网址链接,生成随机数加验证id参数,点击去网站验证。)        if (Send(MessageFrom, MessageTo, MessageSubject, MessageBody))
            {
                Response.Write("发送邮件成功");
            }
            else
            {
                Response.Write("发送邮件失败");
            }
        }
        /// <summary> 
        /// 发送电子邮件 
        /// </summary> 
        /// <param name="MessageFrom">发件人邮箱地址</param> 
        /// <param name="MessageTo">收件人邮箱地址</param> 
        /// <param name="MessageSubject">邮件主题</param> 
        /// <param name="MessageBody">邮件内容</param> 
        /// <returns></returns> 
        public bool Send(MailAddress MessageFrom, string MessageTo, string MessageSubject, string MessageBody)
        {
            MailMessage message = new MailMessage();
           
           // if (FileUpload1.PostedFile.FileName != "")
           // {
            // Attachment att = new Attachment("d://test.txt");//发送附件的内容
           //    message.Attachments.Add(att);
           // }
           
            message.From = MessageFrom;
            message.To.Add(MessageTo); //收件人邮箱地址可以是多个以实现群发 
            message.Subject = MessageSubject;
            message.Body = MessageBody;
            //message.Attachments.Add(objMailAttachment);
            message.IsBodyHtml = false; //是否为html格式 
            message.Priority = MailPriority.High; //发送邮件的优先等级 
           
            SmtpClient sc = new SmtpClient();
            sc.Host = "smtp.126.com"; //指定发送邮件的服务器地址或IP 
            sc.Port = 25; //指定发送邮件端口 
            sc.Credentials = new System.Net.NetworkCredential("[email protected]", "xxx"); //指定登录服务器的用户名和密码(发件人的邮箱登陆密码)
            
            try
            {
                sc.Send(message); //发送邮件 
            }
            catch
            {
                return false;
            }
            return true;    }
    }
      

  3.   

    发送电子邮件 ,邮件中包含激活的 连接, 连接应有用户名 激活码 及 有限期, 当用户通过电子邮件点击 你提供的连接地址后,连接到你指定地址 更新数据库即可 。
    这个指定地址可以建立一个页面 A.ASPX
    注意:
    1、注册成功的时候 数据库中的激活字段为0,同时生成一位“随机数加密 ”存到数据库。
    2、用邮箱发给用户超链接加上刚刚生成的随机数加密传过去。类似A.ASPX?aa=$$@!$asd%!#sd
    3、当用户点击了 把加密数与数据库里的比较,相等的话 激活字段为1,并且设置一个新的随机数更新到数据库
    此时用户在点击以前链接的时候 就应经与数据库中的不一样了。即 失效
      

  4.   

    这里也有。看看这个。有DEMO下载发链接到邮箱验证注册用户是否存在
      

  5.   

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    using System.Net.Mail;
     
    public partial class jqueryText_Limit : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            MailAddress MessageFrom = new MailAddress("[email protected]"); //发件人邮箱地址 
            string MessageTo = "[email protected]"; //收件人邮箱地址 
            string MessageSubject = "邮件主题"; //邮件主题 
    string MessageBody = "请进行邮箱验证来完成您注册的最后一步,点击下面的链接激活您的帐号:<br><a target='_blank' rel='nofollow' style='color: #0041D3; text-decoration: underline' href='http://www.ipyy.net/regeditOK.aspx'>激活</a>"; //邮件内容 (一般是一个网址链接,生成随机数加验证id参数,点击去网站验证。)
     
            if (Send(MessageFrom, MessageTo, MessageSubject, MessageBody))
            {
                Response.Write("发送邮件成功");
            }
            else
            {
                Response.Write("发送邮件失败");
            }
        }
        /// <summary> 
        /// 发送电子邮件 
        /// </summary> 
        /// <param name="MessageFrom">发件人邮箱地址</param> 
        /// <param name="MessageTo">收件人邮箱地址</param> 
        /// <param name="MessageSubject">邮件主题</param> 
        /// <param name="MessageBody">邮件内容</param> 
        /// <returns></returns> 
        public bool Send(MailAddress MessageFrom, string MessageTo, string MessageSubject, string MessageBody)
        {
            MailMessage message = new MailMessage();
            
           // if (FileUpload1.PostedFile.FileName != "")
           // {
            // Attachment att = new Attachment("d://test.txt");//发送附件的内容
           //    message.Attachments.Add(att);
           // }
            
            message.From = MessageFrom;
            message.To.Add(MessageTo); //收件人邮箱地址可以是多个以实现群发 
            message.Subject = MessageSubject;
            message.Body = MessageBody;
            //message.Attachments.Add(objMailAttachment);
            message.IsBodyHtml = false; //是否为html格式 
            message.Priority = MailPriority.High; //发送邮件的优先等级 
            
            SmtpClient sc = new SmtpClient();
            sc.Host = "smtp.126.com"; //指定发送邮件的服务器地址或IP 
            sc.Port = 25; //指定发送邮件端口 
            sc.Credentials = new System.Net.NetworkCredential("[email protected]", "xxx"); //指定登录服务器的用户名和密码(发件人的邮箱登陆密码)
             
            try
            {
                sc.Send(message); //发送邮件 
            }
            catch
            {
                return false;
            }
            return true;
     
        }
    }