美文网首页ThinkPHP
ThinkPHP的使用(八)发送邮箱

ThinkPHP的使用(八)发送邮箱

作者: 蒙奇奇路西 | 来源:发表于2017-07-10 14:11 被阅读37次
  • 将下载好的phpmailer文件夹放入Plugin文件夹
  • 然后在function.php文件中添加如下代码
function sendMail($to, $title, $content){
   require_once('./Plugin/phpmailer/class.phpmailer.php');
   $mail = new PHPMailer();
   // 设置为要发邮件
   $mail->IsSMTP();
   // 是否允许发送HTML代码做为邮件的内容
   $mail->IsHTML(TRUE);
   $mail->CharSet='UTF-8';
   // 是否需要身份验证
   $mail->SMTPAuth=TRUE;
   /*  邮件服务器上的账号是什么 -> 到163注册一个账号即可 */
   $mail->From="xxx@sina.com";
   $mail->FromName="xxx";
   $mail->Host="smtp.sina.com";
   $mail->Username="xxx";
   $mail->Password="123456";
   // 发邮件端口号默认25
   $mail->Port = 25;
   // 收件人
   $mail->AddAddress($to);
   // 邮件标题
   $mail->Subject=$title;
   // 邮件内容
   $mail->Body=$content;
   return($mail->Send());
}
  • UserController.class.php中的代码:
public function regist(){
    //两个逻辑:展示,收集
    $user=new \Model\UserModel();
    if(IS_POST){
        $data=$user->create();//过滤非法字段
        if($user->add($data)){
            $this->success('注册成功',U('showRegister'),1);
        }else{
            $this->error('注册失败',U('regist'),1);
        }
    }else{
        $this->display();
    }
}
//用户注册成功后显示相关信息
function showRegister(){
    $this->display();
}

//会员邮箱激活
function jihuo(){
    $user_id=I('get.user_id');
    $checkcode=I('get.checkcode');
    //更改user_check=1,user_check_code=null
    $user=D('User');
    //首先需要验证,再激活
    $userinfo=$user->where(array('user_check'=>0))->find($user_id);
    if($userinfo['user_check_code']===$checkcode){
        $z=$user->setField(array('user_id'=>$user_id,'user_check'=>1,'user_check_code'=>''));
        if($z){
            $this->success('会员激活成功!',U('login'),1);
        }
    }else{
        $this->success('操作有错误或账号已经激活!',U('login'),1);
    }
}
  • UserModel.class.php中的代码:
// 插入成功后的回调方法
protected function _after_insert($data,$options) {
    //判断当前的动作为“注册”,并发送邮件
    if($_POST['act']=='regist'){
        //生成校验码
        $code=md5(uniqid());//生成一个唯一的校验码信息
        $this->setField(array('user_id'=>$data['user_id'],'user_check_code'=>$code));//更新校验码到会员记录
        //具体邮件发送
        //sendMail(注册邮箱,title,content)                  $link=C('Local').U('User/jihuo',array('user_id'=>$data['user_id'],'checkcode'=>$code));
        sendMail($data['user_email'],'会员注册激活','请点击以下超链接,激活您的账号:'.$link);
    }
}

相关文章

网友评论

    本文标题:ThinkPHP的使用(八)发送邮箱

    本文链接:https://www.haomeiwen.com/subject/udgyhxtx.html