在用户大量注册的时候,我门需要使用邮箱去让用户激活在本站的邮箱信息 如果没有激活 有一些功能就不能用,并且也
不能去验证本邮箱的安全性,所以我们数据库中 用户表中记录着用户的 激活状态 activestate=fasle 和activecode(GUID)激活码
等字段,并且只有当用户激活了之后才能去修改信息, 并且在激活的时候也要去验证用户传递来的activecode 和数据库中
的字段进行比较,以及用户的id ,如果真有id 并且activecode的值和数据库中的字段一致后才去 修改数据库中的
activestate=true字段的值,
当每来一个用户去注册的时候都要发送邮件 但是当管理员的邮箱要改 的时候 如果在配置文件中设置的 那么就要重新
启动iis 导致所有用户都掉线,不可取, 所以我们在数据库中设置了 //系统邮件地址 系统邮件用户名 系统邮件密码 系统邮件SMTP
等一个name 列和他相对应的值 value 列
但是这样每当用户注册都要去读取数据库拿到这些信息才去和用户发邮件,连接数据库很浪费性能 所以我们适应
HttpRuntime.Catch 缓存技术 根据 //系统邮件地址 系统邮件用户名 系统邮件密码 系统邮件SMTP 的名称去找到响应的值
这样 不管管理员更新邮件地址 还是什么 只要我从缓存中拿就行了
并且给新注册的用户发送邮件也只需要在缓存中拿到管理员的邮件信息就可以了

代码:
//根据邮箱配置项的名称找到该值.--放入缓存中。
public string GetModel(string name)
{
if (HttpRuntime.Cache[name] == null) //要进入 system.web这个命名空间 HttpRuntime在这个下边
{
string value = dal.GetModel(name).Value;//根据你的键值从数据库中获取响应的值
HttpRuntime.Cache[name] = value;
return value;
}
else
{
return HttpRuntime.Cache[name].ToString();

//HttpRuntime.Cache.Remove(name);//清空缓存.
}
}
管理员更新邮箱的时候只要在写一个更新的方法 让HttpRuntime.Cache.Remove(name)就可以了

发送邮件代码

MailMessage mailMsg = new MailMessage();//两个类,别混了,要引入System.Net这个Assembly
mailMsg.From = new MailAddress(GetModel("dreamliu"));//源邮件地址
mailMsg.To.Add(new MailAddress("1002431328@qq.com"));//目的邮件地址。可以有多个收件人
mailMsg.Subject = "Hello,大家好!";//发送邮件的标题
mailMsg.Body = "helloword!";//发送邮件的内容
mailMsg.IsBodyHtml = true;//如果发送的邮件中有html语言就要设置这个值
SmtpClient client = new SmtpClient(GetModel("smtp"));//smtp.163.com,smtp.qq.com
client.Credentials = new NetworkCredential(GetModel("UserName"),GetModel("pwd"));
client.Send(mailMsg);

OK!

转载于:https://www.cnblogs.com/One-dream-man/archive/2012/08/21/2650052.html

用户登录邮箱验证和发送邮件缓存应用相关推荐

  1. Laravel8 实现注册新用户时邮箱验证

    Laravel 实现注册新用户时邮箱验证 前期准备 安装需要的组件 配置数据库 配置邮箱 方法一:使用 MailTrap 方法二:使用谷歌邮箱 1. 数据库迁移文件添加字段 2. 发送邮件到用户邮箱 ...

  2. Spring MVC拦截器实现用户登录权限验证案例

    本节将通过拦截器来完成一个用户登录权限验证的 Web 应用 springMVCDemo07,具体要求如下:只有成功登录的用户才能访问系统的主页面main.jsp,如果没有成功登录而直接访问主页面,则拦 ...

  3. java springmvc权限校验_springmvc拦截器实现用户登录权限验证

    实现用户登录权限验证 先看一下我的项目的目录,我是在intellij idea 上开发的 1.先创建一个User类 1 package cn.lzc.po; 2 3 public class User ...

  4. php yanzhengm,php登录验证_php用户登录与验证的代码举例

    摘要 腾兴网为您分享:php用户登录与验证的代码举例,雨课堂版,新东方,小度音响,手机互联等软件知识,以及py平台,折扇app,内蒙古税务局,货代,兰斯10,新浪长微博,吉民生,yy球球直播视频,速优 ...

  5. java spring登录验证_springMVC 用户登录权限验证实现过程解析

    通过上网搜资料显示,使用filter和interceptor都可以实现.不过推荐使用interceptor. 下面就使用Interceptor实现用户登录权限验证功能. 拦截器需要实现Inceptor ...

  6. .NET简单的登录邮箱验证

    虽然现在很多的网站的登录验证都已经改成手机验证了,但邮箱验证还是一个比较主流的验证方式,下面我给大家介绍一个比较简单的邮箱验证的实现方法,大概的思路是:注册的时候需要填写邮箱账户,注册成功后,后台生成 ...

  7. 实现用户登录权限验证

    先看一下我的项目的目录,我是在intellij idea 上开发的 1.先创建一个User类 1 package cn.lzc.po;2 3 public class User {4 private ...

  8. 随机验证码、用户登录密码验证、手机号加密案例

    String类案例 1.随机数案例 package zrzy.qrs.stringequals;import java.util.Random;/** *需求:获取一个随机5位的验证码,包含字母大小写 ...

  9. 抽屉之Tornado实战(9)--装饰器实现用户登录状态验证

    当然今天讲的验证,不只Tornado会用,以后用到web框架都会用到,最常见的场景就是只有用户登陆了才能执行某些操作,所以在执行这些操作前要先做登陆状态的验证. 比如:点赞,发布,评论等需要验证,都需 ...

最新文章

  1. 【2021年度训练联盟热身训练赛第二场】Soccer Standings(python)
  2. python简单代码input-python简单基础代码
  3. web前端入门学习 css(2)
  4. ADVM/ACFS is not supported on centos-release-5-5.el5.centos 解决方法
  5. 注册表操作(VC_Win32)
  6. Java中的Properties类详解Properties配置文件
  7. 获取 HTML5 网页设计灵感的10个网站推荐
  8. Oracle BCT(Block Change Tracking)与增量备份
  9. 解线性方程组的迭代法(雅可比、高斯-塞德尔迭代法)
  10. 一张“黑洞”照片需半吨重硬盘?!
  11. 常用商品条形码简介和成员国前缀码
  12. SQL 生成一个日期范围
  13. LOJ2257 SNOI2017 遗失的答案 容斥、高维前缀和
  14. REST架构风格的理解(分布式应用系统的架构演变)
  15. 微信小程序点击事件和长按事件
  16. iis运行html提示500错误,IIS发布网站出现Http—500错误
  17. IIS6,IIS7,IIS8的脚本自动安装
  18. 给windows7系统盘瘦身
  19. API是用来干什么的
  20. 英文论文写作常用词汇及句型

热门文章

  1. linux 排程命令,Ubuntu 排程設定 :Crontab 排程使用教學
  2. Kali Linux搜索软件包
  3. Wireshark数据抓包教程之安装Wireshark
  4. BeagleBone硬件概览Ethernet端口板载LEDc重置按钮等介绍
  5. js小球与边框碰撞反弹_四叉树在碰撞检测中的应用
  6. .net 集合分成几个等数量集合_如果不想下载软件,那就看一下这几个网站吧
  7. 高铁订票系统css,高铁订票系统-数据库系统设计.pptx
  8. 脑机接口新进展!意念控制机器人离实现更近了一步!
  9. 首位植入脑机接口的患者通过Twitter发布信息
  10. MNE-Python专辑 | MNE-Python详细安装与使用(更新)