精华内容
下载资源
问答
  • QQ邮箱收到的时这个 发现&符号被转义了,没多大影响

    QQ邮箱收到的时这个
    在这里插入图片描述
    在这里插入图片描述

    发现&符号被转义了,没多大影响

    展开全文
  • laravel qq邮箱验证

    2019-12-09 12:10:46
    laravel qq邮箱验证 参考文章 :Laravel自带SMTP邮件组件实现发送邮件(QQ、163、企业邮箱都可) laravel5.6发送邮件功能实现&队列使用(基于数据库) 开启普通邮箱POP3和SMTP服务 使用QQ邮箱的话,需要开启POP3...

    laravel qq邮箱验证
    参考文章 :Laravel自带SMTP邮件组件实现发送邮件(QQ、163、企业邮箱都可)
    laravel5.6发送邮件功能实现&队列使用(基于数据库)

    开启普通邮箱POP3和SMTP服务

    使用QQ邮箱的话,需要开启POP3和SMTP服务(QQ邮箱登录=》选择设置=》账户=》下拉找到下图)。
    使用企业邮箱不用开启SMTP,因为企业邮箱自带,如果配置有问题去查一下是否关闭安全登录(企业邮箱)
    开启方式如下:
    登录=》左上角设置=》账户=》选择开启POP3/SMTP服务 并生成授权码 类似下图
    在这里插入图片描述

    配置laravel 中的.env文件

    MAIL_DRIVER=smtp
    MAIL_HOST=smtp.qq.com
    MAIL_PORT=465
    MAIL_USERNAME=********@qq.com
    MAIL_PASSWORD=qq邮箱此处填写上图产生的授权码
    MAIL_ENCRYPTION=ssl
    

    配置 配置laravel config/mail.php文件

     'from' => [
            'address' => env('MAIL_FROM_ADDRESS', '与.env文件相同@qq.com'),
            'name' => env('MAIL_FROM_NAME', 'Example'),
        ], 
    

    如果不配置 则会报错
    在这里插入图片描述

    开始代码之旅

    生成控制器

    php artisan make::controller MailController
    

    配置路由

    Route::any('mail/send','MailController@send');
    
    在app/Http/Controllers生成了一个MailController控制器,如下所示:
    <?php
    
    namespace App\Http\Controllers;
    
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\Mail;
    
    
    class MailController extends Controller
    {
    	//
    }
    

    编辑上面控制器:

    <?php
    
    namespace App\Http\Controllers;
    
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\Mail;
    
    
    class MailController extends Controller
    {
        //
        public function send() {
            $name = '我发的第一份邮件';
            // Mail::send()的返回值为空,所以可以其他方法进行判断
            Mail::send('emails.test',['name'=>$name],function($message){
                $to = '1173914782@qq.com'; $message ->to($to)->subject('邮件测试');
            });
            // 返回的一个错误数组,利用此可以判断是否发送成功
            dd(Mail::failures());
        }
    }
    
    

    Mail::send()需要传三个参数,第一个为引用的模板,第二个为给模板传递的变量(邮箱发送的文本内容),第三个为一个闭包,参数绑定Mail类的一个实例。

    展开全文
  • 使用laravel进行邮箱验证

    千次阅读 2018-12-20 21:40:43
    简单粗暴,直接上代码! .env: MAIL_DRIVER=smtp MAIL_HOST=smtp.163.com MAIL_PORT=465 MAIL_USERNAME=route@...MAIL_PASSWORD=password MAIL_ENCRYPTION=ssl ... //163邮箱发送邮件 public function mail(){ ...

    简单粗暴,直接上代码!

    .env:

    MAIL_DRIVER=smtp
    MAIL_HOST=smtp.163.com
    MAIL_PORT=465
    MAIL_USERNAME=route@163.com
    MAIL_PASSWORD=password
    MAIL_ENCRYPTION=ssl
    

    控制器层:

     //163邮箱发送邮件
       public function mail(){
       	 $data=Crty::mailed();
       	 // print_r($data);die;
       	 Mail::send("add_sort/shows",['user'=>$data->user],function($message){
       	 	$message->from("15******97@163.com","发件人");
       	 	$message->subject('message');
       	 	$message->to('收件人@qq.com');
       	 });
        
       }
        
      //缓存Cache
       public function register(Request $request){
       	 if($request->isMethod('post')){
           $data=$request->all();
           $info=Crty::registered($data);
           // print_r($info);die;
           if($info){
           	return redirect('crty/mail');
           }
       	 }elseif($request->isMethod('get')){
       	 	return view('add_sort/register');
       	 }
       	
       }

    model层:

    //注册model
      public static function registered($data){
        // print_r($data);die;
        if(empty($data['user'])){
          echo "用户名不能为空";die;
        }
        if(empty($data['pwd'])){
          echo "密码不能为空";die;
        }
        if(empty($data['telphone'])){
          echo "手机号码不能为空";die;
        }
        if(empty($data['email'])){
          echo "邮箱不能为空";die;
        }
        $user=$data['user'];
        $telphone=$data['telphone'];
        $email=$data['email'];
        $arr=array(
          'user'=>$data['user'],
          'pwd'=>$data['pwd'],
          'telphone'=>$data['telphone'],
          'email'=>$data['email']
         );
       Mail::send("add_sort/shows",['user'=>$arr['user'],'telphone'=>$arr['telphone']],function($message){
          $message->from("1**105****7@163.com","发件人");
          $message->subject('message');
          $message->to('11****@qq.com');
         });
       //设置缓存,用以想客户发送邮箱数据    
         $insert=DB::table('register')->insert($arr);
         return $insert;
        }
       //邮箱验证
       public static function mailed(){
           $data=DB::table('register')->where('id',25)->first(); 
           return $data;
       }

    view:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    </head>
    <body>
    	<table>
    
    		<tr>
    			<td>恭喜{{$user}},用户电话{{$telphone}}</td>
    			
    		</tr>
    
    	</table>
    </body>
    </html>

     

    展开全文
  • Laravel 5.7 起,Laravel 自带了邮箱验证的相关字段和功能 1.调整模型类 首先,调整下User 模型类,实现MustVerifyEmail接口 use Illuminate\Auth\MustVerifyEmail as MustVerifyEmailTrait; use ...

    目录

    1.调整模型类

    2,邮箱认证演示

    3,源码


    从 Laravel 5.7 起,Laravel 自带了邮箱验证的相关字段和功能

     

    1.调整模型类

    首先,调整下User 模型类,实现 MustVerifyEmail 接口

    use Illuminate\Auth\MustVerifyEmail as MustVerifyEmailTrait; 
    use Illuminate\Contracts\Auth\MustVerifyEmail as MustVerifyEmailContract;
    
    class User extends Authenticatable implements MustVerifyEmailContract
    {
        use Notifiable, MustVerifyEmailTrait;

    查看源码:

    Illuminate\Auth\MustVerifyEmail 有如下三个方法
    
    #检测用户 Email 是否已认证; 
    public function hasVerifiedEmail();
    #将用户标示为已认证
    public function markEmailAsVerified();
    #发送 Email 认证的消息通知,触发邮件 的发送
    public function sendEmailVerificationNotification();
    
    

    得益于 PHP 的 trait 功能,User 模型在  use  以后,即可使用以上三个方法

    eg:

    #可以看到用户是否验证,返回true或false
    dd(\Auth::user()->hasVerifiedEmail()); 

    2,邮箱认证演示

    使用laravel中间件来过滤用户的所有请求,如果用户未认证的话,就跳转到邮件认证提醒的页面中

    Auth::routes(['verify' => true]);
         // 1. 如果用户已经登录         
         // 2. 并且还未认证 Email         
         // 3. 并且访问的不是 email 验证相关 URL 或者退出的 URL
        public function handle($request, Closure $next)
        {
            if($request->user() && 
                ! $request->user()->hasVerifiedEmail() && 
                ! $request->is('email/*', 'logout')){
                 // 根据客户端返回对应的内容             
                return redirect()->route('verification.notice'); 
            }
            return $next($request);
        }

    然后将其注册

    在.env中将邮件先发送到 log 中:

    MAIL_DRIVER=log

    注册后,发现会跳转到验证页面,在log中找到邮件链接,即可激活后跳到主页,此时数据库中email_verified_at字段已不为空

     

    3,源码

    register控制器中

    
    Illuminate\Foundation\Auth\RegistersUsers
    
    public function register(Request $request)
        {
             // 检验用户提交的数据是否有误 
            $this->validator($request->all())->validate();
            // 创建用户同时触发用户注册成功的事件,并将用户传参 
            event(new Registered($user = $this->create($request->all())));
            // 登录用户 
            $this->guard()->login($user);
            // 调用钩子方法 
            return $this->registered($request, $user)
                            ?: redirect($this->redirectPath());
        }
    
    

    其中event(new Registered($user = $this->create($request->all())));

    这里使用了 Laravel 的事件系统,触发了 Registered  事件

    打开 app/Providers/EventServiceProvider.php  文件,此文件的  $listen  属性里 我们可以看到注册了  Registered  事件的监听器

    protected $listen = [
            Registered::class => [
                SendEmailVerificationNotification::class,
            ],
        ];

    打开  SendEmailVerificationNotification  类

    public function handle(Registered $event)
        {
         // 如果 user 是继承于 MustVerifyEmail 并且还未激活的话 
            if ($event->user instanceof MustVerifyEmail && ! $event->user->hasVerifiedEmail())
         // 发送邮件认证消息通知(认证邮件)  {
                $event->user->sendEmailVerificationNotification();
            }
        }

     

    展开全文
  • Laravel发送邮箱消息验证 945的密码:umywcvkrfrytfeef ENV的配置如下: MAIL_DRIVER=smtpMAIL_HOST=smtp.qq.comMAIL_PORT=25MAIL_USERNAME=XXXXX@qq.comMAIL_PASSWORD=umywcvkrfrytfeefMAIL_...
  • 'active_url' => '是否是一个合法的url,基于PHP的checkdnsrr函数,因此也可以用来验证邮箱地址是否存在', 'after:date' => '验证字段必须是给定日期后的值,比如required|date|after:tomorrow,通过PHP函数...
  • laravel 项目实现邮箱验证功能

    千次阅读 2018-08-28 14:43:19
    邮箱验证功能在很多网站都有用到,我的个人网站上也用到,邮箱验证需要用到邮件发送服务,Laravel 提供了非常简单的邮件发送 API,Laravel 项目实现邮件发送功能很简单,下面我开始介绍一下我的具体实现。...
  • laravel 数据验证规则

    2020-12-10 14:47:00
    ‘是否是一个合法的url,基于PHP的checkdnsrr函数,因此也可以用来验证邮箱地址是否存在’, ‘after:date’ => ‘验证字段必须是给定日期后的值,比如required|date|after:tomorrow,通过PHP函数strtotime来验证’...
  • 邮箱验证 laravel框架

    千次阅读 2018-09-19 18:11:05
    邮箱验证 邮箱验证功能实现具体步骤如下: 添加字段,为用户表添加两个字段,验证令牌 (verification_token) 和验证状态 (verified) 。 生成令牌。 用户登录后,检测是否验证过邮箱,没有则引导去验证。 使用...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 129
精华内容 51
关键字:

laravel邮箱验证