基于TP3.2的发送邮箱做找回密码
技术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" . ' 已投送成功<br />';
$status = 1;
} else {
//$status2 = "$to" . ' 发送邮件失败<br />';
$status = 0;
}
return $status;
}
基于TP3.2的发送邮箱做找回密码相关推荐
- javaWeb实现使用邮箱邮件找回密码功能
JSP+Jmail+JavaBean 发邮件(转)2010-08-23 18:052007年04月14日 14:32/* * SendMail.java * * Created on 2007年3月3 ...
- php发邮箱验证码找回密码,织梦dede会员通过邮箱找回密码方法
首先打开文件: /member/resetpassword.php 这是织梦会员找回密码的核心文件! 在148行有这么一句: showmsg('对不起,临时密码错误', '-1'); 看来问题就在 ...
- 使用qq邮箱作为找回密码发件邮箱。报错:参数或变量中有语法错误。 服务器响应为:mail from address must be same as authorization u
首先查看该帖:http://bbs.csdn.net/topics/390149680 然后QQ邮箱管理员 返回以下信息. 你好,我们发现你最近在第三方客户端尝试登录QQ邮箱失败. 失败原因:由于你已 ...
- 通过邮箱验证码找回密码
pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifac ...
- 网站登录密码忘记后,通过向手机发送验证码实现找回密码的实现方法
今天我想了一天如何实现网站用户在忘记了密码后,如何通过向手机发送验证码来重新设置密码.验证码的验证以及生成都已经做好了,现在主要是解决如何向用户手机发送短信.显然这需要一个第三方提供的短信接口,来帮助 ...
- c#web窗体登录界面登录注册以及密码找回发送邮箱功能
c#web窗体登录界面登录注册以及密码找回发送邮箱功能 效果图如下: 1.登录界面aspx代码 <%@ Page Language="C#" AutoEventWireup= ...
- java 邮箱找回密码_【JavaWeb】通过邮件找回密码
前言 本文将介绍忘记密码时通过发送重置密码邮件找回密码的实现思路.整个实现过程中最重要的就是以下三点: 如何发送邮件到用户指定邮箱 邮件中的重置密码链接构成是怎么样的 验证重置密码链接的合法性(是否过 ...
- ThinkPHP 3.2 用户注册邮箱验证帐号找回密码
一.前言 当然现在有的网站也有手机短信的方式找回密码,原理就是通过发送验证码来验明正身,和发送邮件验证一样,最终还是要通过重置密码来完成找回密码的流程. 本文将使用PHP+Mysql+jQuery来实 ...
- 网站常用邮箱找回密码流程插件页面
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
最新文章
- pynput使用简单说明
- 面向动态环境基于点的语义SLAM系统
- bootstrap_fileinput上传文件 后台接受额外的参数
- 第四天 用户管理和服务管理
- 高通第一财季营收107亿美元 净利润超过30亿美元
- log4j控制日志的输出文件
- 一步一步学Repast 第二章(把界面显示出来2)
- EF实体框架 5 性能注意事项
- 基于深度学习的银行卡号识别
- 解决 Win11 打不开 Windows 安全中心 (Windows Defender)
- 查看CentOS版本信息
- 到极地拍摄北极熊 你需要这样的装备
- C#创建临时文件夹方法
- 奔跑吧linux内核知乎,802.11ah(HaLow)协议解析7:NDP控制帧(NDP CMAC Frame)
- r7c刷机android6.0,OPPO R7电信版R7c官方固件刷机包rom线刷包(Root权限+驱动)
- 7-4 sdust-Java-学生成绩读取与排序 (35分)CSDN-markdown编辑器
- 迷你图书管理器1.0 - 变量+数组
- 用到Linux的命令的总结(持续更新)
- MySQL自带的性能压力测试工具mysqlslap详解
- HWSWP和BSWP
热门文章
- (八)ElasticSearch之文档映射
- 怎样才能画好动漫少女黑丝袜?
- java boolean 语法_Java Boolean booleanValue()方法
- greenplum数据库集群异常FATAL,XX000,Number of freeTIDs 788079, do not match maximum free order numbe
- Photoshop cc2018 安装设置自定义路径
- C语言十进制转16进制
- 我的世界java8崩溃_我的世界无法正常启动、崩溃(Crash)等常见问题
- hacker(1)数据包分析
- 今天我们来谈谈【像素流送】到底是什么?!
- ue4 纹理流送导致的光照贴图问题