.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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值