首页 > 代码库 > .NET下用C#实现邮箱激活功能
.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://www.mamicode.com/‘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 }
发送邮件服务端代码
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 存储用户id10 Session[key] = 1;11 // Url需要发送至邮件12 Url = "http://localhost:25088/active.aspx?key=" + key; 13 14 }15 }
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 }
.NET下用C#实现邮箱激活功能
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。