Laravel邮箱推送

Laravel邮箱推送

打开项目根目录下面的config文件夹,找到mail.php文件 如图配置 file 然后配置.env文件 file这里的MAIL_PASSWORD为你邮箱的授权码, 已QQ邮箱为列,需要开启POP3和SMTP服务。开启方式如下:QQ邮箱 > 设置 > 账户file当开启成功会生成密钥,这个东西会在配置中用到file当需要记录发信记录时,你还需要进行相关配置file 废话不多说,直接上代码, 以上配置这些完成后:

/*邮箱发送*/
    public function mailbox_code(Request $request){
        $param=$request->all();
                /*输入的邮箱*/
        $mailbox=$param['mailbox'];
                /*验证邮箱是否合格*/
        $is_mailbox=$this->mailbox($param);
        if($is_mailbox){
          return $is_mailbox;
        }
        $ip=$request->getClientIp();
                /*生成6为随机数为验证码*/
        $data=$this->getRandom(6);
        // Cache::forget($ip.'mailbox_code');
        if(Cache::get($ip.'mailbox_code')){
            return array('code'=>1,'msg'=>'请在5分钟内输入你的验证码');
        }else{
            Cache::put($ip.'mailbox_code', $data,300);
        }
        /*html.code意为模板,data 为传值到模板中去*/
        Mail::send('html.code',['data'=>$data],function($message) use($mailbox) {
            $message->to($mailbox)->subject('测试邮件');
        });
        /*Mail::failures()有值时便是失败,无值则成功*/
        if(Mail::failures()){
           return array('code'=>1,'msg'=>'发送失败,请稍后再试');
        }else{
                    /*这里记录日志*/
            $log = new Logger('register');
            $path='logs/register_code.log';
            $log->pushHandler(new StreamHandler(storage_path($path)));
            $str="时间: ".date("Y-m-d H:i:s",time())."  Code:".$data."  ip:".$ip." 邮箱:".$mailbox;
            $log->info($str);
           return array('code'=>0,'msg'=>'请在5分钟内输入你的验证码'); 
        }
    }
模板:

file 邮箱:file更多

扫描下方二维码,关注本人公众号:filefile

___中国好码农

猜你喜欢