【验证邮件】怎么实现邮箱验证注册?_验证邮件



信息到邮箱,当你得到邮箱信息并确认后才能实现注册成功?



思路:


1.数据库加两个字,state字段(0:未激活,1:激活成功),ActiCode:(放激活码)


2.用户填写资料,插入数据成功,state字段默认是0,同时生成一个ActiCode也存入数据库


3.提示用户激活。。。发送邮件。。。邮件中带一个激活成功页的URL,URL里有两个参数(1,用户ID,2:

激活码


4.用户点击链接,回到激活成功页。。。激活成功页的Load事件,得到两个参数,以这两个参数为条件查询

数据库里的数据,如果有,修改字段state为1,反之。。提示激活失败,重新激活。。




//这是发送邮件的 
  
 //Body里放A 
  标签(前提是IsBodyHtml设为true,才会允许发送HTML格式的) 
  
 #region 
  
 publicstaticvoidSends(stringemail) 
  
 { 
  
 stringformto="发件箱地址"; 
  
 stringto=email;//接收邮箱 
  
 stringcontent=""; 
  
 stringbody=""; 
  
 stringname="发件箱"; 
  
 stringupass="密码"; 
  
 stringsmtp="smtp地址"; 
  
 SmtpClient_smtpClient=newSmtpClient(); 
  
 _smtpClient.DeliveryMethod=SmtpDeliveryMethod.Network;//指定电子邮件发送方式 
  
 _smtpClient.Host=smtp;//指定SMTP 
  服务器 
  
 _smtpClient.Credentials=newSystem.Net.NetworkCredential(name,upass);//用户名和密码 
  
 MailMessage_mailMessage=newMailMessage(); 
  
 //发件人,发件人名 
  
 _mailMessage.From=newMailAddress(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



楼上代码思路都很清晰了~



非常清楚了.




usingSystem.Net.Mail; 
  
 publicpartialclassjqueryText_Limit:System.Web.UI.Page 
  
 { 
  
 protectedvoidPage_Load(objectsender,EventArgse) 
  
 { 
  
 MailAddressMessageFrom=newMailAddress("sengoo@126.com");//发件人邮箱地址 
  
 stringMessageTo="237254883@qq.com";//收件人邮箱地址 
  
 stringMessageSubject="邮件主题";//邮件主题 
  
 stringMessageBody="请进行邮箱验证来完成您注册的最后一步,点击下面的链接激活您的帐号: 
  
 激活";//邮件内容(一般是一个网址链接,生成随机数加验证id参数,点击去网站验证。) 
  
 if(Send(MessageFrom,MessageTo,MessageSubject,MessageBody)) 
  
 { 
  
 Response.Write("发送邮件成功"); 
  
 } 
  
 else 
  
 { 
  
 Response.Write("发送邮件失败"); 
  
 } 
  
 } 
  
 /// 
  
 ///发送电子邮件 
  
 /// 
  
 ///发件人邮箱地址 
  
 ///收件人邮箱地址 
  
 ///邮件主题 
  
 ///邮件内容 
  
 /// 
  
 publicboolSend(MailAddressMessageFrom,stringMessageTo,stringMessageSubject,stringMessageBody) 
  
 { 
  
 MailMessagemessage=newMailMessage(); 
  
 //if(FileUpload1.PostedFile.FileName!="") 
  
 //{ 
  
 //Attachmentatt=newAttachment("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;//发送邮件的优先等级 
  
 SmtpClientsc=newSmtpClient(); 
  
 sc.Host="smtp.126.com";//指定发送邮件的服务器地址或IP 
  
 sc.Port=25;//指定发送邮件端口 
  
 sc.Credentials=newSystem.Net.NetworkCredential("sengoo@126.com","xxx");//指定登录 
  服务器的用户名和密码(发件人的邮箱登陆密码) 
  
 try 
  
 { 
  
 sc.Send(message);//发送邮件 
  
 } 
  
 catch 
  
 { 
  
 returnfalse; 
  
 } 
  
 returntrue; 
  
 } 
  
 }


在传过来的连接里面加入一些参数


在连接传递多去后


默认的在缓存里面保存5分钟


时间到了就移除这个数据


如果时间内连接过来的能对比的上就是正确的连接的



发送电子邮件,邮件中包含激活的连接,连接应有用户名

激活码及有限期,当用户通过电子邮件点击你提供的连接地址后,连接到你指定地址更新数据库即可。


这个指定地址可以建立一个页面A.ASPX


注意:


1、注册成功的时候数据库中的激活字段为0,同时生成一位“随机数加密”存到数据库。


2、用邮箱发给用户超链接加上刚刚生成的随机数加密传过去。类似A.ASPX?aa=$$@!$asd%!#sd


3、当用户点击了把加密数与数据库里的比较,相等的话激活字段为1,并且设置一个新的随机数更新到数据库


此时用户在点击以前链接的时候就应经与

数据库中的不一样了。即失效。。。



学习了,好贴