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

  思路:在表中增加一个字段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;

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

  发送邮件服务端代码

  public partial class Index : System.Web.UI.Page
{
public string Url { get; set; }
protected void Page_Load(object sender, EventArgs e)
{ string key = Guid.NewGuid().ToString("N");
// 以GUID为key 存储用户id
Session[key] = ;
// Url需要发送至邮件
Url = "http://localhost:25088/active.aspx?key=" + key; }
}

2.激活

   public partial class active : System.Web.UI.Page
{
public string Msg { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
Msg = "激活失败";
// 取请求中的key
string key = Request["key"];
if (Session[key] != null)
{
// 这里还需要操作数据库
Msg = "激活成功,Userid为" + Session[key];
} }
}

.NET下用C#实现邮箱激活功能的更多相关文章

  1. php实现邮箱激活功能

    php实现邮箱激活功能 一.样例 二.文件结构 其中swiftmailer-master是第三方插件,用来发验证邮件 三.核心代码 doAction.php 响应页面 <?php header( ...

  2. asp.net mvc 注册中的邮箱激活功能实现(一)

    基本流程图 注册页面就不再写出,现在将发送邮件的代码粘贴出来 public ActionResult SendEmial() { ; string validataCode = System.Guid ...

  3. asp.net mvc 注册中的邮箱激活功能实现

    基本流程图 注册页面就不再写出,现在将发送邮件的代码粘贴出来   public ActionResult SendEmial() { ; string validataCode = System.Gu ...

  4. asp.net mvc 注册中的邮箱激活功能实现(二)

    邮件发送功能封装 /// <summary>        /// 发送注册邮件        /// </summary>        /// <param name ...

  5. Java实现邮箱激活验证

    最近从项目分离出来的注册邮箱激活功能,整理一下,方便下次使用 RegisterValidateService.java [java] view plaincopyprint?   package co ...

  6. Java案例-用户注册邮箱绑定激活功能实现

    <–start–> 需求描述:当客户打开收到邮箱激活码的邮件,点击激活链接,正确填写激活码后就会完成邮箱激活的步骤. 在后台编程代码编写中,有以下几个要点: ① 接收客户的手机号码和邮箱激 ...

  7. SpringBoot实现网站注册,邮件激活码激活功能

    项目源码:https://gitee.com/smfx1314/springbootemail 上一篇文章已经讲到如何springboot如何实现邮件的发送,趁热打铁,这篇文章实现如下功能. 很多网站 ...

  8. 使用Asp.Net Identity 2.0 认证邮箱激活账号(附DEMO)

    注:本文系作者原创,但可随意转载.若有任何疑问或错误,欢迎与原作者交流,原文地址:http://www.cnblogs.com/lyosaki88/p/aspnet-itentity-ii-email ...

  9. javamail实现邮箱验证功能

    javamail是基于SMTP协议和POP3协议的邮件发送与接收系统,在用户注册与登陆的过程中,常需要用到邮箱验证功能,下面是基于javamail的一个简单实现 用户注册后通过servlet得到邮箱地 ...

随机推荐

  1. Struts2笔记——通配符和动态方法调用

     通配符映射 * 一个 Web应用可能有成百上千个 action 声明. 可以利用 struts提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系 * 通配符映射规则     > 若 ...

  2. Sublime Text2 多行编辑快捷键

    鼠标选中多行,按下 Ctrl Shift L (Command Shift L) 即可同时编辑这些行:鼠标选中文本,反复按 CTRL D (Command D) 即可继续向下同时选中下一个相同的文本进 ...

  3. Hadoop namenode无法启动问题解决

    原因:在root账户(非hadoop账户)下操作hadoop会导致很大的问题 首先运行bin/start-all.sh发现namenode没有启动 只有它们 9428 DataNode 9712 Jo ...

  4. python csv tsv处理

    空行: http://www.crifan.com/python_csv_writer_writerow_redundant_new_line/

  5. Backbone Backbone-localStorage demo

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. ava中拦截器 过滤器 监听器都有什么区别

    过滤器,是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts2的action进行业务逻辑,比如过滤掉非法u ...

  7. INDIGO STUDIO神器!快速创建WEB、移动应用的交互原型工具【转】

    转自:http://www.uisdc.com/indigo-studio-wireframe-interactive-uis 这套最新的设计工具出自Indigo工作室,永久免费,有mac版本和WIN ...

  8. 蓝牙接收苹果手机通知 ANCS协议分析

    蓝牙接收苹果手机通知 ANCS协议分析 转载,请注明出处:http://www.cnblogs.com/alexcai/p/4321514.html 综述 现在有许多蓝牙手表.手环都能接收苹果ipho ...

  9. 《c程序设计语言》读书笔记--统计总的字符数,打印能打印的最多字符

    #include <stdio.h> #define MAXLINE 10 int getline(char line[],int maxline); void copy(char to[ ...

  10. zoj 3329 One Person Game (有环 的 概率dp)

    题目链接 这个题看的别人的思路,自己根本想不出来这种设方程的思路. 题意: 有三个骰子,分别有k1,k2,k3个面. 每次掷骰子,如果三个面分别为a,b,c则分数置0,否则加上三个骰子的分数之和. 当 ...