【验证邮件】怎么实现邮箱验证注册?_验证邮件
信息到邮箱,当你得到邮箱信息并确认后才能实现注册成功?
思路:
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,并且设置一个新的随机数更新到数据库
此时用户在点击以前链接的时候就应经与
数据库中的不一样了。即失效。。。
学习了,好贴