首先要自己配置下自己所使用的smtp服务器,这里使用的是QQ的

//邮箱配置项
'SWIFT_HOST'=>'smtp.qq.com',
'SWIFT_USERNAME'=>'XXXX@qq.com',
'SWIFT_PASSWORD'=>'abrsjjqtpfgndccc',
// 验证验证码
// 通过验证码后 查找邮箱 然后将该邮箱对应的修改密码链接发过去
// 该链接链接到一个修改方法 通过寻找verify 找到用户 修改其密码public function mima(){// 并且设定好十分钟后才可以再发链接到邮箱if(!empty($_POST)){$Reader = D('reader');$where = array();$where['reader_email'] = I('post.reader_email');$where['reader_name'] = I('post.reader_name');$rst = $Reader -> where($where) -> find();if($rst == false){$this->redirect('Index/mima','',0.01,'<script>alert("输入错误");</script>');exit;}// 如果通过了验证   账号 和 邮箱   则继续 否则redirect + 提示验证码错误$where = array();$where['reader_email'] = $_POST['reader_email'];$reader = $Reader -> where($where)->find();// 如果存在该邮箱属于用户则继续$email = $reader['reader_email'];$username = $reader['reader_name'];$userpwd = $reader['reader_pwd'];$id = $reader['id'];$modtime = time();//创建用于激活识别码$token = md5($username.$userpwd.$email.$modtime); //过期时间为10分钟后$token_exptime = time()+10*60;$dt = array('id'      =>  $id,'token'     =>  $token,'token_exptime' =>  $token_exptime,);$link = $Reader -> save($dt);if($link){$url = U('active');//用于激活的地址$end = strrpos($url,'.');$url = substr($url,0,$end);$emailsubject = "XXXXX";//邮箱标题//邮箱内容$emailbody = "尊敬的".$username.":<br/>请点击链接修改您的帐号密码。<br/><a href='".__APPURL__."/$url?verify=".$token."' target='_blank'>".__APPURL__."/$url?verify=".$token."</a><br/>如果以上链接无法点击,请将它复制到你的浏览器地址栏中进入访问,该链接10分钟内有效。<br/>如果此次激活请求非你本人所发,请忽略本邮件。<br/><p style='text-align:right'>-------- 敬上</p>";$rs = send_email($email,$emailsubject,$emailbody);//send_email(邮箱,邮箱标题,邮箱内容);if($rs){$msg = '恭喜您,提交成功!请登录到您的邮箱修改您的密码!';  }else{$msg = '提交失败!'; }$this->redirect('Index/index',array(),0.00001,"<script>alert('$msg');</script>");exit;}}else{$this->display(); }}
//修改地址  public function active(){$Reader = D('reader');if(!empty($_POST)){$Reader->create();$rst = $Reader->save();if($rst){// 记录你认为必要的session$this->redirect('Index/index','',0.001,'<script>alert("修改成功");</script>');exit;}else{$this->redirect('Index/index','',0.001,'<script>alert("修改失败");</script>');exit;}// 根据token查找// if OK 并且链接未过时 则提供修改页面 并且修改到token对应上}else{$verify = stripslashes(trim($_GET['verify']));$time = time();$where['token'] = $verify;$reader = $Reader -> where($where)->find();if($reader['token_exptime'] < $time){// 超时$this->redirect('Index/index','',0.001,'<script>alert("该链接已经失效");</script>');exit;}$this->assign('id',$reader['id']);$this->display();}}
/*** send email by swiftmailer** @param  string|array $to      收件人* @param  string       $subject 主题* @param  string       $content 内容* @return int          发送的邮件数目*/
function send_email($to, $subject, $content)
{vendor('swiftmailer.swift_required');// $transport = Swift_SmtpTransport::newInstance(C('SWIFT_HOST'), 25)$transport = Swift_SmtpTransport::newInstance(C('SWIFT_HOST'), 465, 'ssl')->setUsername(C('SWIFT_USERNAME'))->setPassword(C('SWIFT_PASSWORD'));$mailer  = Swift_Mailer::newInstance($transport);$message = Swift_Message::newInstance()->setSubject($subject)->setFrom(array(C('SWIFT_USERNAME') => '某某某'))->setTo($to)->setBody($content, 'text/html', 'utf-8');return $mailer->send($message);
}

关于通过邮箱找回密码的实现相关推荐

  1. java邮箱找回密码_Spring实现简单的邮箱找回密码功能

    通过spring可以实现简单的邮箱找回密码的功能,在此做一下简单的笔记. 1.首先就是导入一些相关的jar包 2.加入配置文件,具体配置信息如下: encoding="UTF-8" ...

  2. SpringBoot实现通过邮箱找回密码功能

    养成习惯,先赞后看!!! 目录 1.前言 2.步骤 2.1导入依赖 2.2开启邮箱的SMTP服务 2.3配置application.yaml文件 2.4 编写逻辑的步骤 2.4.1创建pm_valid ...

  3. java 邮箱找回密码_【JavaWeb】通过邮件找回密码

    前言 本文将介绍忘记密码时通过发送重置密码邮件找回密码的实现思路.整个实现过程中最重要的就是以下三点: 如何发送邮件到用户指定邮箱 邮件中的重置密码链接构成是怎么样的 验证重置密码链接的合法性(是否过 ...

  4. JavaWeb QQ邮箱找回密码

    我的上一篇博客,已经写了登录注册,接下来写QQ邮箱找回密码 首先:我们需要在 QQ邮箱设置中获取授权码,步骤如下 进入QQ邮箱---->设置---->账户---->开启服务:POP3 ...

  5. java 基于springboot邮箱找回密码功能

    一.主要内容 基于springboot实现密码找回功能. 二.邮箱找回密码的思想. 1.输入注册邮箱,点击获取验证码.会将验证码发送到邮箱. 2.用户进入邮箱,查看验证码. 3.用户输入验证码,输入新 ...

  6. AspNetCore-MVC实战系列(二)之通过绑定邮箱找回密码

    AspNetCore - MVC实战系列目录 . 爱留图网站诞生 . git源码:https://github.com/shenniubuxing3/LovePicture.Web . AspNetC ...

  7. js加mysql写邮箱找回密码_邮箱找回密码实现

    邮箱找回密码实现 思路: 点击邮箱找回:前端给后端服务器发送请求 get:http://127.0.0.1:8000/api/v1/email?email=7777777777@qq.com 后端发送 ...

  8. laravel邮箱找回密码

    本文目录 一.邮箱找回密码 1.1 创建中间件 1.2 路由 1.3 控制器 1.4 测试效果 一.邮箱找回密码 1.1 创建中间件 创建一个验证邮箱验证码是否正确的中间件: 运行命令:php art ...

  9. Java实现邮箱找回密码

    通过邮件找回密码功能的实现 1.最近开发一个系统,有个需求就是,忘记密码后通过邮箱找回.现在的系统在注册的时候都会强制输入邮箱,其一目的就是 通过邮件绑定找回,可以进行密码找回.通过java发送邮件的 ...

  10. java邮箱找回密码_java实现邮箱找回密码 简单邮件

    首先 发件人的POP/SMTP服务要打开   发件人的密码为服务的授权码 js方法 //找回密码 function send(){ var lostemail = $("#lostemail ...

最新文章

  1. java jnotify_java JNotify (基于内核)实时监控文件
  2. mysql 5.02审计_CentOS 7.2 mysql-5.7.17 审计插件安装、开启与设定
  3. 抖音开放平台 php-sdk 注意事项
  4. 【Oracle】Exadata虚拟机配置(一)
  5. python元组和集合
  6. MSSQL实践-数据库备份加密
  7. 两顶点的路径长度为k_计算两个顶点之间的所有可能路径
  8. 400集python入门到精通_2020年最强Python学习路线+教程,400集带你从入门到精通
  9. 【Docker 命令】- images命令
  10. 紧跟潮流的背景设计,赶紧尝试用新的背景改变旧的设计。
  11. window服务器查看硬盘有几块,从多个远程Windows服务器获取磁盘空间信息
  12. HDU1591 Encoded Love-letter【密码】
  13. mysql 一张表的数据插入另一张表的sql语句
  14. 1.支付平台架构:业务、规划、设计与实现 --- 收银台业务
  15. vue-element-admin——登录页面添加自定义背景
  16. 最值得看的电影,一生必看的50部电影,您看过几部影
  17. linux时间同步到win7,mac与win7时间不同步怎么办_mac与win7时间不准如何解决
  18. cshop缓存清理-限制或禁用ECShop缓存
  19. 适合编程初学者的开源博客系统
  20. XILINX DDR4 SDRAM(MIG)笔记2(基于VU9P FPGA)

热门文章

  1. sql 的 desc和asc用法
  2. xxl-job快速入门
  3. 电商网站产品结构数据库设计
  4. ajax对象的值,简单谈谈AJAX核心对象
  5. 安装显卡后计算机无法启动,Win10更新显卡驱动后无法开机进入系统的解决方法...
  6. Internet Explorer无法打开站点,已终止操作
  7. JRebel-JVMTI [FATAL] Couldn‘t write to C:\Users\【完美解决方案】
  8. linux让grep带颜色,在linux下给grep命令添加颜色
  9. Python 函数的使用和内嵌函数
  10. ffmepg处理10bit 和8bit yuv总结