TP框架 发送邮箱实现找回密码

注意事项

开启socket:在PHP.ini中取消extension=php_sockets.dll前面的分号。

.登录你的邮箱手动开启STMP服务,这个服务默认是关闭的,一定要去邮箱->设置里去手动开启,开启时要求你设置一个独立密码,这个密码就是写在 'MAIL_PASSWORD'=>' ', // 邮箱密码,的密码而不是邮箱登录密码

userinfo中加上一个字段Resettime(邮箱提交时间,和当前时间比较,判断链接是否过期)

1、      在ThinkPHP/Extend/Library/ORG/Net/目录下放入PHPMailer.class.php、class.pop3.php、class.smtp.php文件

2、        在Index/Conf/config.php配置文件中加上以下配置项//发送邮件  'MAIL_ADDRESS' => '18782227612@163.com', // 邮箱地址(注册时好像会有一个地址)  'MAIL_SMTP' => 'smtp.163.com', // 邮箱SMTP服务器  'MAIL_LOGINNAME' => 'm18782227612_2@163.com', // 邮箱登录帐号  'MAIL_PASSWORD' => 'bviqbapkcyyrrtmf', // 邮箱密码(这是我开启STMP服务时给的授权密码,注意看注意事项第2点)  'MAIL_CHARSET' => 'UTF-8', // 编码  'MAIL_AUTH' => true, // 邮箱认证  'MAIL_HTML' => true, // true HTML格式 false TXT格式

3、        在Index/Common /common.php文件中建一个函数IsSMTP();// 设置邮件的字符编码,若不指定,则为'UTF-8'$mail->CharSet='UTF-8';// 添加收件人地址,可以多次使用来添加多个收件人$mail->AddAddress($address);// 设置邮件正文$mail->Body=$message;// 设置邮件头的From字段。$mail->From=C('MAIL_ADDRESS');// 设置发件人名字$mail->FromName='zyimm';// 设置邮件标题$mail->Subject=$title;// 设置SMTP服务器。$mail->Host=C('MAIL_SMTP');// 设置为“需要验证”$mail->SMTPAuth=true;// 设置用户名和密码。$mail->Username=C('MAIL_LOGINNAME');$mail->Password=C('MAIL_PASSWORD');// 发送邮件。return($mail->Send());} 

4、        在Index/Lib/Action/IndexAction.class.php中加入以下两个方法  //找回密码---发送到邮箱,用户验证  public function sendemail() {      import('ORG.Net.PHPMailer');      $r = M('userinfo')->where(array('Loginname' => I('username'),'Email' => I('email')))->find();      $this->user = $r;      if (!$r) {          echo 'alert("该用户不存在或者邮箱不正确!");location.href="http://localhost/jiaxiao2/index.php/Index/findpwd"';      } else {          $user = I('username');          $email = I('email');          $content = "$user,你好:              您收到这封电子邮件是因为您 (也可能是某人冒充您的名义) 申请了一个找回密码的请求。      假如这不是您本人所申请, 或者您曾持续收到这类的信件骚扰, 请您尽快联络管理员。      您可以点击如下链接重新设置您的密码,如果点击无效,请把下面的代码拷贝到浏览器的地址栏中:      http://localhost/jiaxiao2/index.php/Index/findpassword?Loginname=$user      在访问链接之后, 您可以重新设置新的密码。";          $rs = SendMail($email, '民大驾校---用户密码找回', $content,'manager'); //SendMail('admin@waikucms.com','邮件标题','邮件正文','歪酷CMS管理员');解释下参数: 参数1---目标邮箱, 参数2----邮件标题,参数三--邮件正文,参数四---发件人名称;          if ($rs) {              M('userinfo')->where(array('Loginname' => I('username'), 'Email'=> I('email')))->save(array('Resettime' => date('Y-m-d H:i:s')));                echo'alert("系统已将重置密码的链接安全的发到了您的邮箱,请及时查收!");location.href="http://localhost/jiaxiao2/index.php/?n=1"';          } else {                echo'alert("邮件发送失败!");location.href="http://localhost/jiaxiao2/index.php/Index/findpwd"';          }      }  }    //找回密码  //邮箱有效期  从数据库取出发送邮件的提交时间,和当前时间做对比,如果当前时间超过提交时间30分,则过期  public function findpassword(){      $username = I('Loginname');      $user = M('userinfo')->where(array('Loginname' =>$username))->select();      $this->user = $user;      $u = M('userinfo')->where(array('Loginname' =>$username))->find();      $resettime = $u['Resettime']; //获取数据库邮箱发送时间      $time = date("Y-m-d H:i:s", strtotime("-30 min"));//当前时间减去30分后还小于等于发送邮箱时间,则时间有效,反之过期      $data = array('Password' => md5(I('password')));      $rs = M('userinfo')->where(array('Loginname' => I('Loginname')))->save($data);      if ($resettime >= $time) {          if ($rs) {                echo'alert("修改密码成功!");location.href="http://localhost/jiaxiao2/index.php/?n=1"';          }      } else {          echo 'alert("该链接已经过期!");location.href="http://localhost/jiaxiao2/index.php/?n=1"';      }      $this->display();}

5、        然后在在Index/Tpl/Index中加入以下两个html文件Findpwd.html找回密码

返回用户名

邮箱

Findpassword.html文件找回密码

返回

用户名

新的密码

确认新密码

6、        然后在登录页面加上相应的链接在Index/Tpl/common/top.html和indextop.html中学员和教练后面加上忘记登录密码?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,036评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,046评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,411评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,622评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,661评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,521评论 1 304
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,288评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,200评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,644评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,837评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,953评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,673评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,281评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,889评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,011评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,119评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,901评论 2 355

推荐阅读更多精彩内容