技术QQ交流群:294088839

//找回密码
    public function reset(){
        if(IS_POST){
             $username=I('post.username');
             $email=I('post.email');
            //查询账号是否存在
           $info= M('member')->where(array('username'=>$username))->field('id,email,username,password')->find();
            if($info['id']==null){
                $this->error('此账号不存在');
            }
            //判断是否填邮箱
            if($info['email']!=$email){
                $this->error('邮箱跟您注册的邮箱不一致');
            }

$key = md5 ( $info ['username'] . '+' . $info ['password'] ); // MD5不可逆,验证$string中username,防止URL更改username
            $string = base64_encode ( $info ['username'] . '+' . $key ); // 加密,可解密
            $time = time ();
            $code=md5 ( 'mytime'.$time );

// 生成URL

$findpwd = $_SERVER ['HTTP_HOST'] . U('Change/changePassword' ,array('key'=>$key,'info'=>$string,'time'=>$time,'code'=>$code)); // code是用来检验time是否有修改过

// 调用发送邮件函数

$username = $info ['username'];
            $title="找回密码";

$content="<h3>亲爱的:$username 用户</h3>
<br><br>请点击:<a href='http://$findpwd'>找回密码</a>
<br><br><h4>请及时修改密码</h4>
<br><br><br><h4>有效期30分钟</h4>
<br><br>";

$to=$info ['email'];

$status = $this->send_mail ( $title,$content,$to );
            if($status==1){
                $this->success ( '发送邮件成功...' , U ( 'Login/index' ), 2 );
            }else{
                $this->error ( '发送邮件失败...');
                exit ();
            }

}else{
            $this->display();
        }

}

//发送邮件
    public function send_mail($title, $content,$to, $chart = 'utf-8', $attachment = '') {
        //查询邮箱配置信息
        $sys=M('sysconfig')->where(array('config_name'=>'email'))->field('config_text')->find();

$sys=unserialize($sys['config_text']);
        include './ThinkPHP/Library/Vendor/PHPMailer/class.phpmailer.php';
        //class.smtp.php
        include './ThinkPHP/Library/Vendor/PHPMailer/class.smtp.php';

$mail = new \PHPMailer ();
        $mail->CharSet = $chart; // 设置采用gb2312中文编码
        $mail->isSMTP (); // 设置采用SMTP方式发送邮件
        $mail->Host = $sys['mail_host']; // 设置邮件服务器的地址
        $mail->SMTPSecure = 'ssl';
        $mail->CharSet = 'UTF-8';
        $mail->Port = $sys['smtp']; // 设置邮件服务器的端口,默认为25
        $mail->From =$sys['mail_from']; // 设置发件人的邮箱地址
        $mail->FromName =$sys['mail_fromname']; // 设置发件人的姓名
        $mail->SMTPAuth = true; // 设置SMTP是否需要密码验证,true表示需要
        $mail->Username = $sys['mail_name']; // 设置发送邮件的邮箱
        $mail->Password = $sys['mail_password']; // 设置邮箱的密码
        $mail->Subject = $title; // 设置邮件的标题
        $mail->AltBody = "text/html"; // optional, comment out and test
        $mail->Body = $content; // 设置邮件内容
        $mail->IsHTML ( true ); // 设置内容是否为html类型
        $mail->WordWrap = 50; // 设置每行的字符数
     //  $mail->AddReplyTo ( "地址", "名字" ); // 设置回复的收件人的地址
       $mail->AddAddress ( $to, "" ); // 设置收件的地址
        if ($attachment != '') {
            $mail->AddAttachment ( $attachment, $attachment );
        }
        if ($mail->Send ()) {
            //$status1 = "$to" . '&nbsp;&nbsp;已投送成功<br />';
            $status = 1;

} else {
            //$status2 = "$to" . '&nbsp;&nbsp;发送邮件失败<br />';
            $status = 0;
        }
        return $status;
    }

基于TP3.2的发送邮箱做找回密码相关推荐

  1. javaWeb实现使用邮箱邮件找回密码功能

    JSP+Jmail+JavaBean 发邮件(转)2010-08-23 18:052007年04月14日 14:32/* * SendMail.java * * Created on 2007年3月3 ...

  2. php发邮箱验证码找回密码,织梦dede会员通过邮箱找回密码方法

    首先打开文件: /member/resetpassword.php 这是织梦会员找回密码的核心文件! 在148行有这么一句: showmsg('对不起,临时密码错误', '-1');   看来问题就在 ...

  3. 使用qq邮箱作为找回密码发件邮箱。报错:参数或变量中有语法错误。 服务器响应为:mail from address must be same as authorization u

    首先查看该帖:http://bbs.csdn.net/topics/390149680 然后QQ邮箱管理员 返回以下信息. 你好,我们发现你最近在第三方客户端尝试登录QQ邮箱失败. 失败原因:由于你已 ...

  4. 通过邮箱验证码找回密码

    pom依赖 <dependency>     <groupId>org.springframework.boot</groupId>     <artifac ...

  5. 网站登录密码忘记后,通过向手机发送验证码实现找回密码的实现方法

    今天我想了一天如何实现网站用户在忘记了密码后,如何通过向手机发送验证码来重新设置密码.验证码的验证以及生成都已经做好了,现在主要是解决如何向用户手机发送短信.显然这需要一个第三方提供的短信接口,来帮助 ...

  6. c#web窗体登录界面登录注册以及密码找回发送邮箱功能

    c#web窗体登录界面登录注册以及密码找回发送邮箱功能 效果图如下: 1.登录界面aspx代码 <%@ Page Language="C#" AutoEventWireup= ...

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

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

  8. ThinkPHP 3.2 用户注册邮箱验证帐号找回密码

    一.前言 当然现在有的网站也有手机短信的方式找回密码,原理就是通过发送验证码来验明正身,和发送邮件验证一样,最终还是要通过重置密码来完成找回密码的流程. 本文将使用PHP+Mysql+jQuery来实 ...

  9. 网站常用邮箱找回密码流程插件页面

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

最新文章

  1. pynput使用简单说明
  2. 面向动态环境基于点的语义SLAM系统
  3. bootstrap_fileinput上传文件 后台接受额外的参数
  4. 第四天 用户管理和服务管理
  5. 高通第一财季营收107亿美元 净利润超过30亿美元
  6. log4j控制日志的输出文件
  7. 一步一步学Repast 第二章(把界面显示出来2)
  8. EF实体框架 5 性能注意事项
  9. 基于深度学习的银行卡号识别
  10. 解决 Win11 打不开 Windows 安全中心 (Windows Defender)
  11. 查看CentOS版本信息
  12. 到极地拍摄北极熊 你需要这样的装备
  13. C#创建临时文件夹方法
  14. 奔跑吧linux内核知乎,802.11ah(HaLow)协议解析7:NDP控制帧(NDP CMAC Frame)
  15. r7c刷机android6.0,OPPO R7电信版R7c官方固件刷机包rom线刷包(Root权限+驱动)
  16. 7-4 sdust-Java-学生成绩读取与排序 (35分)CSDN-markdown编辑器
  17. 迷你图书管理器1.0 - 变量+数组
  18. 用到Linux的命令的总结(持续更新)
  19. MySQL自带的性能压力测试工具mysqlslap详解
  20. HWSWP和BSWP

热门文章

  1. (八)ElasticSearch之文档映射
  2. 怎样才能画好动漫少女黑丝袜?
  3. java boolean 语法_Java Boolean booleanValue()方法
  4. greenplum数据库集群异常FATAL,XX000,Number of freeTIDs 788079, do not match maximum free order numbe
  5. Photoshop cc2018 安装设置自定义路径
  6. C语言十进制转16进制
  7. 我的世界java8崩溃_我的世界无法正常启动、崩溃(Crash)等常见问题
  8. hacker(1)数据包分析
  9. 今天我们来谈谈【像素流送】到底是什么?!
  10. ue4 纹理流送导致的光照贴图问题