• .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
  • 相关阅读:
    使用 asp.net mvc和 jQuery UI 控件包
    ServiceStack.Redis 使用教程
    HTC T8878刷机手册
    Entity Framework CodeFirst 文章汇集
    2011年Mono发展历程
    日志管理实用程序LogExpert
    使用 NuGet 管理项目库
    WCF 4.0路由服务Routing Service
    精进不休 .NET 4.0 (1) asp.net 4.0 新特性之web.config的改进, ViewStateMode, ClientIDMode, EnablePersistedSelection, 控件的其它一些改进
    精进不休 .NET 4.0 (7) ADO.NET Entity Framework 4.0 新特性
  • 原文地址:https://www.cnblogs.com/simple-blog/p/4201231.html
Copyright © 2020-2023  润新知