×
新网 > 邮箱资讯 > 正文

基于TP3.2的发送邮箱做找回密码

技术QQ交流群:294088839    //找回密码     public function reset(){         if(IS_POST){              $username=I(\'post.username\');              $email=I(\'post.email\');             //查询账号是否存在

t0177f0aed171bc2904.jpg

//找回密码
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;
}

  • 相关专题

免责声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,请发送邮件至:operations@xinnet.com进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

免费咨询获取折扣

Loading