通过邮件发送验证码来修改密码

简介:

平时我们上网登录系统是忘记密码,用邮件找回密码,我就在下面自己做了一个用邮件找回密码的小程序:

1、目的:通过用户发送验证码到邮箱,用户登录邮箱后查看验证码(有效期30分钟),输入验证码后可修改密码

2、数据库设计:用户表的关键字段:UserId,UserPass,RandomText,LastSendRandomTime,Email.

3、解决思路:

(1)用户输入邮箱地址(Email,根据用户编号(UserId)判断用户输入的邮箱是否正确,若正确,则将系统生成的验证码(RandomText)、当前发送时间写入用户表的RandomText、LastSendRandomTime字段中,并将验证码发送到用户的邮箱中

(2)当用户输入验证码时,首先判断当前时间与上一次发送验证码的时间间隔,若小于一定的时间,则判断输入的验证码与数据库写入的验证码是否一致,一致则转向修改密码页面

关键代码:

发送邮件:

 #region   发送邮件(引用命名空间Mail)
     /// <summary>
     /// 发送邮件找回密码
     /// </summary>
     /// <param name="Email">用户邮箱</param>
     /// <param name="RanDom">6位数字随机码</param>
     public static void SendEmail(string Email, string RanDom, string Name)
     {
         MailMessage mail = new MailMessage();
         mail.To.Add(new MailAddress(Email));
         mail.Subject = "作业在线找回密码";
         mail.SubjectEncoding = System.Text.Encoding.UTF8;
         mail.Body = "尊敬的用户:" + Name + ".作业在线系统找回密码给你发的验证码是:" + RanDom + ".该验证码有效时间为30分钟,请注意自己的帐号安全,不要外泄密码!!";
         mail.BodyEncoding = System.Text.Encoding.UTF8;
         mail.IsBodyHtml = true;
         mail.Priority = MailPriority.High;
         SmtpClient smtpclient = new SmtpClient();
         smtpclient.UseDefaultCredentials = true;
         string EmailClass = Email.Substring(Email.LastIndexOf('@'));
         smtpclient.Host = "smtp" + EmailClass;
         mail.From = new MailAddress("发送邮件的邮箱地址");
         smtpclient.Credentials = new System.Net.NetworkCredential("发送邮件的邮箱地址", "密码");

        smtpclient.Send(mail);               

     }

     #endregion

时间间隔:

                   TimeSpan Ts1 = new TimeSpan(DateTime.Now.Ticks);
                    TimeSpan Ts2 = new TimeSpan(Dtime.Ticks);
                    double DiffTime = Ts2.Subtract(Ts1).Minutes;

相关文章
|
8月前
邮箱发送验证码
邮箱发送验证码
169 1
邮箱发送验证码
|
6月前
|
存储 API 数据安全/隐私保护
​邮箱收不到验证码邮件是什么原因
在互联网应用中,未收到验证码邮件常令人困扰。原因包括邮件误入垃圾箱、邮箱设置不当、发件服务器故障、地址输入错误及ISP拦截。解决策略有检查垃圾邮件、清理邮箱、修正设置、确认地址准确及更换邮箱服务。推荐使用AOKSend提升邮件送达率,其优势在于高送达率、实时监测与易集成,通过注册、获取API、配置SMTP及测试,可有效解决验证码邮件送达问题,优化用户体验。
|
8月前
|
安全 Java 数据库
SpringSecurity实现多种登录方式,如邮件验证码、电话号码登录
SpringSecurity实现多种登录方式,如邮件验证码、电话号码登录
1479 2
|
6月前
WordPress禁止用户注册某些用户名
不管在任何网站,用户注册时都有一个屏蔽非法关键词,就是禁止注册某些用户名,原因是因为防止用户使用一些特定的用户名,例如管理员、官方等用户名,还有就是那些攻击性的词语了。 加网站添加了屏蔽非法关键词,让那些用户名不被注册,对网站的安全性也是一个提高。
36 1
|
6月前
|
存储 API 数据安全/隐私保护
邮箱收不到验证码邮件是什么原因
在互联网应用中,未收到验证码邮件常令人困扰。原因包括:邮件误标为垃圾、邮箱设置不当、发件服务器故障、邮箱地址输入错误,及ISP拦截。解决策略有检查垃圾邮件、清理邮箱、修正设置、确认邮箱地址无误、联系服务提供商与ISP,或尝试其他邮箱服务。使用AOKSend等可靠邮件服务可提升送达率,其优势在于高送达率、实时监测与易集成性,确保验证码邮件及时准确到达,改善用户体验。
|
安全 数据安全/隐私保护
SpringSecurity5.7+最新案例 -- 用户名密码+验证码+记住我······
根据最近一段时间的设计以及摸索,对SpringSecurity进行总结,目前security采用的是5.7+版本,和以前的版本最大的差别就是,以前创建SecurityConfig需要继承WebSecurityConfigurerAdapter,而到了5.7以后,并不推荐这种做法,查了网上一些教程,其实并不好,绝大多数用的都是老版本,所以出此文案。一些原理什么的,就不过多说明了,一般搜索资料的,其实根本不想你说什么原理 T·T。
193 0
SpringSecurity5.7+最新案例 -- 用户名密码+验证码+记住我······
|
前端开发 JavaScript 数据安全/隐私保护
Validform验证修改密码
前端页面、验证原密码后台代码、提交表单js代码、提交表单后台代码。
175 0
|
Java 开发者
登录功能之添加验证码|学习笔记
快速学习登录功能之添加验证码
172 0
登录功能之添加验证码|学习笔记
|
数据库 数据安全/隐私保护 关系型数据库