Laravel5.6 Email не работает, не показывая ошибку - PullRequest
0 голосов
/ 12 октября 2018

Я хотел проверить подтверждение по электронной почте после регистрации для моего проекта.

Письмо Laravel не отправляется, также не отображается ошибка после клона от Gitlab

После клонаиз gitlab я обновил проект композитора, а также добавил .env файлы.Я настроил mail.php в config / mail.php
config / mail.php Конфигурация ниже:

'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

Конфигурация 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');
   }
}

Код контроллера регистрации ниже:

<?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');
}
}

.env Конфигурация файла

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

После завершения регистрации он будет перенаправлен на маршрут

Файл RegistersUsers Конфигурация

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());
}

web.php Код конфигурации маршрута ниже:

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

email.sendПросмотреть файл Код ниже:

<!DOCTYPE html>
<html lang="en">
<head>
<title>Email Verification</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
 <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"> 
</script>
</head>
<body>

   <div class="container">

    <h2 class="well text-center">Email Verification Link Below</h2>

    <a href="{{ route('sendEmailDone',["email"=>$user->email,"verifyToken"=>$user->verifyToken]) }}" class="btn btn-info btn-block" target="_blank">Verify Email Button</a>

   </div>

</body>
</html>

Что здесь не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...