• .NET下用C#实现邮箱激活功能


      最近要用到安全邮箱激活的功能,故写篇博客记录下。

      思路:在表中增加一个字段State来记录邮箱是否激活(0激活,1未激活。)

    1、发送邮件。
        1-1,给邮箱发送邮件。内容:激活地址+GUID。
        1-2,以GUID作为键Userid为值存入Session中
    2、点击邮箱里激活链接 激活。
        2-1,请求激活页面。(需在20分钟内,同一浏览器打开)
        2-2,通过GUID取Session中的Userid  进行激活。
     
    上代码:
     

    1.发送邮件

      我们可以使用.net自带的类库:System.Net.Mail;

     1         /// <summary>
     2         /// 发送激活链接.
     3         /// </summary>
     4         public static void SendEmail(string activeCode, string mail)
     5         {
     6             MailMessage mailMsg = new MailMessage();//两个类,别混了,要引入System.Net这个Assembly
     7             mailMsg.From = new MailAddress("xxxx@163.com");//源邮件地址 ,发件人
     8             mailMsg.To.Add(new MailAddress(mail));//目的邮件地址。可以有多个收件人.
     9             mailMsg.Subject = "请激活在商城中的注册链接";//发送邮件的标题 
    10             mailMsg.Body = "<a href='http://localhost:2934/Home/Active/?userId=36&activeCode=" + activeCode + "'>请单击激活</a>";//发送邮件的内容 
    11             mailMsg.IsBodyHtml = true;
    12             SmtpClient client = new SmtpClient("smtp.163.com");//smtp.163.com,smtp.qq.com,发件人使用的邮箱的SMTP服务器。
    13             client.Credentials = new NetworkCredential("xxxxx@163.com", "xxxxxxxx");//指定发件人的邮箱的账号与密码.
    14             client.Send(mailMsg);//排队发送邮件.
    15 
    16         }    
    View Code

      发送邮件服务端代码

     1  public partial class Index : System.Web.UI.Page
     2     {
     3         public string Url { get; set; }
     4         protected void Page_Load(object sender, EventArgs e)
     5         {
     6 
     7 
     8             string key = Guid.NewGuid().ToString("N");
     9             // 以GUID为key 存储用户id
    10             Session[key] = 1;
    11             // Url需要发送至邮件
    12             Url = "http://localhost:25088/active.aspx?key=" + key; 
    13             
    14         }
    15     }
    View Code

    2.激活

     1   public partial class active : System.Web.UI.Page
     2     {
     3         public string Msg { get; set; }
     4         protected void Page_Load(object sender, EventArgs e)
     5         {
     6             Msg = "激活失败";
     7             // 取请求中的key
     8             string key = Request["key"];
     9             if (Session[key] != null)
    10             {
    11                 // 这里还需要操作数据库
    12                 Msg = "激活成功,Userid为" + Session[key];
    13             }
    14 
    15         }
    16     }
    View Code
  • 相关阅读:
    Nodejs in Visual Studio Code 06.新建Module
    Nodejs in Visual Studio Code 05.Swig+Bootstrap
    Nodejs in Visual Studio Code 04.Swig模版
    Nodejs in Visual Studio Code 03.学习Express
    Nodejs in Visual Studio Code 02.学习Nodejs
    Nodejs in Visual Studio Code 01.简单介绍Nodejs
    Visual Studio Code 与 Github 集成
    Windows 10 代理上网用户的正确使用姿势
    Visual Studio创建跨平台移动应用_03.AppBuilder Extension
    Visual Studio创建跨平台移动应用_02.Cordova Extension
  • 原文地址:https://www.cnblogs.com/simple-blog/p/4201231.html
Copyright © 2020-2023  润新知