C# 注册邮箱验证的实现代码

发布时间:2020-03-21编辑:脚本学堂
本文介绍下,C#实现注册用户时,通过邮箱进行验证的思路与代码,有需要的朋友,不妨参考下。

一、思路

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
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

或者:
 

复制代码 代码示例:

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("test123@126.com"); //发件人邮箱地址
 string MessageTo = "xxxxx@qq.com"; //收件人邮箱地址
 string MessageSubject = "邮件主题"; //邮件主题
string MessageBody = "请进行邮箱验证来完成您注册的最后一步,点击下面的链接激活您的帐号:<br><a target='_blank' rel='nofollow' style='color: #0041D3; text-decoration: underline' href='http://www.****.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("test123@126.com", "xxx"); //指定登录服务器的用户名和密码(发件人的邮箱登陆密码)

 try
 {
     sc.Send(message); //发送邮件
 }
 catch
 {
     return false;
 }
 return true;

    }
}