Laravel5.6电子邮件无法正常工作而不显示错误

时间:2018-10-12 18:23:07

标签: php laravel-5.6

我想为我的项目注册后验证电子邮件验证。

  

从Gitlab克隆后,Laravel电子邮件未发送也未显示错误   

从gitlab克隆后,我更新了项目编辑器并添加了.env文件。 我在以下config / mail.php
config / mail.php配置中配置了mail.php:

str[2], str[3],

我使用以下命令为我的项目创建了verifyEmail:

'driver' => env('MAIL_DRIVER', 'smtp'),
'host' => env('MAIL_HOST', 'smtp.gmail.com'),
'port' => env('MAIL_PORT', 587),
'from' => [
    'address' => env('MAIL_FROM_ADDRESS', 'myEmail@gmail.com'),
    'name' => env('MAIL_FROM_NAME', 'My Name'),
],
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MyEmail@gmail.com'),
'password' => env('MyPassword'),

下面的verifyEmail配置:

php artisan make:mail verifyEmail

在下面注册控制器代码:

<?php

 namespace App\Mail;

 use Illuminate\Bus\Queueable;
 use Illuminate\Mail\Mailable;
 use Illuminate\Queue\SerializesModels;
 use Illuminate\Contracts\Queue\ShouldQueue;
 use App\User;

 class VerifyEmail extends Mailable
 {
   use Queueable, SerializesModels;

   public $user;
   public function __construct(User $user)
   {
      return $this->user = $user;
   }

/**
 * Build the message.
 *
 * @return $this
 */
  public function build()
   {
    return $this->view('email.sendView');
   }
}

.env文件配置

<?php

  namespace App\Http\Controllers\Auth;
  use Illuminate\Support\Str;
  use App\User;
  use App\Http\Controllers\Controller;
  use Illuminate\Support\Facades\Hash;
  use Illuminate\Support\Facades\Validator;
  use Illuminate\Foundation\Auth\RegistersUsers;
  use Mail;
  use App\Mail\VerifyEmail;

class RegisterController extends Controller{

use RegistersUsers;

protected $redirectTo = '/home';

public function __construct()
{
    $this->middleware('guest');
}

protected function validator(array $data)
{
    return Validator::make($data, [
        'name' => 'required|string|max:255',
        'email' => 'required|string|email|max:255|unique:users',
        'password' => 'required|string|min:6|confirmed',
        'verifyToken'=>'string',
    ]);
}

protected function create(array $data){
    $user = User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
        'verifyToken'=>Str::random(40),
    ]);
    $thisUser = User::findOrFail($user->id);
    $this->sendEmail($thisUser);
    return $user;
}

/* Verification Email Send Start */

public function  sendEmail($thisUser)
{
    Mail::to($thisUser['email'])->send(new VerifyEmail($thisUser));
}
/* Verification Email Send End */
public function sendEmailDone($email,$verifyToken)
{
    return $email." - ".$verifyToken;
}
public function verifyEmailFirst()
{
    return view('email.verifyEmailFirst');
}
}

注册完成后,它将重定向到路线

RegistersUsers文件配置

MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=myEmail@gmail.com
MAIL_PASSWORD=myPassword
MAIL_ENCRYPTION=tls

web.php路由配置代码如下:

public function register(Request $request)
{
    $this->validator($request->all())->validate();

    event(new Registered($user = $this->create($request->all())));
    return redirect()->route('verifyEmailFirst');

    return $this->registered($request, $user)
                    ?: redirect($this->redirectPath());
}

email.sendView视图文件代码如下:

Route::get('/EmailVerification','Auth\RegisterController@verifyEmailFirst')- 
>name('verifyEmailFirst');
Route::get('/verify/{email}/{verifyToken}','Auth\RegisterController@sendEmailDone')->name('sendEmailDone');

这是怎么了?

0 个答案:

没有答案