メール送信をしたいが下記のエラーが発生します。
laravel 6.20でメール送信の実装をしています。
ローカル環境でメールが送信できるようにしたいです。
また、Gmailの設定として2段階認証を実行済。
念の為、mail.phpも.envと同じように編集済。
Gmailの設定を参考にしたQiita
メール送信を参考にした記事
発生している問題・エラーメッセージ
Failed to authenticate on SMTP server with username "個人のgmail@gmail.com" using 3 possible authenticators. Authenticator LOGIN returned Expected response code 235 but got code "535", with message "535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8 https://support.google.com/mail/?p=BadCredentials t25sm18113680pgv.30 - gsmtp
". Authenticator PLAIN returned Expected response code 235 but got code "535", with message "535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8 https://support.google.com/mail/?p=BadCredentials t25sm18113680pgv.30 - gsmtp
". Authenticator XOAUTH2 returned Expected response code 250 but got code "535", with message "535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8 https://support.google.com/mail/?p=BadCredentials t25sm18113680pgv.30 - gsmtp
".
該当のソースコード
.env
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=個人のgmail@gmail.com
MAIL_PASSWORD=アプリパスワードから発行をコピペ
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=USERNAMEと同じ@gmail.com
MAIL_FROM_NAME="test mail"
mail.php
//コメントアウトはみやすくするために削除しています。
<?php
return [
'driver' => env('MAIL_DRIVER', 'smtp'),
/
'host' => env('MAIL_HOST', 'smtp.gmail.com'),
'port' => env('MAIL_PORT', 587),
'from' => [
'address' => env('MAIL_FROM_ADDRESS', '個人のgmail@gmail.com
'),
'name' => env('MAIL_FROM_NAME', 'test mail'),
],
/
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
/
'username' => env('MAIL_USERNAME','個人のgmail@gmail.com
'),'),
'password' => env('MAIL_PASSWORD','アプリパスワードから発行をコピペ'),
/
'sendmail' => '/usr/sbin/sendmail -bs',
/
'markdown' => [
'theme' => 'default',
'paths' => [
resource_path('views/vendor/mail'),
],
],
'log_channel' => env('MAIL_LOG_CHANNEL'),
];
```
```
ContactController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Mail\ContactSendmail;
class ContactController extends Controller
{
public function index()
{
//フォーム入力画ページのviewを表示
return view('contact.index');
}
public function confirm(Request $request)
{
//バリデーションを実行(結果に問題があれば処理を中断してエラーを返す)
$request->validate([
'email' => 'required|email',
'title' => 'required',
'body' => 'required',
]);
//フォームから受け取ったすべてのinputの値を取得
$inputs = $request->all();
//入力内容確認ページのviewに変数を渡して表示
return view('contact.confirm', [
'inputs' => $inputs,
]);
}
public function send(Request $request)
{
//バリデーションを実行(結果に問題があれば処理を中断してエラーを返す)
$request->validate([
'email' => 'required|email',
'title' => 'required',
'body' => 'required'
]);
//フォームから受け取ったactionの値を取得
$action = $request->input('action');
//フォームから受け取ったactionを除いたinputの値を取得
$inputs = $request->except('action');
//actionの値で分岐
if($action !== 'submit'){
return redirect()
->route('contact.index')
->withInput($inputs);
} else {
//入力されたメールアドレスにメールを送信
\Mail::to($inputs['email'])->send(new ContactSendmail($inputs));
//再送信を防ぐためにトークンを再発行
$request->session()->regenerateToken();
//送信完了ページのviewを表示
return view('contact.complete');
}
}
}
```
```
confirm.blade.php
@extends('layouts.app')
@section('content')
<form method="POST" action="{{ route('contact.send') }}">
@csrf
<label>メールアドレス</label>
{{ $inputs['email'] }}
<input
name="email"
value="{{ $inputs['email'] }}"
type="hidden">
<label>タイトル</label>
{{ $inputs['title'] }}
<input
name="title"
value="{{ $inputs['title'] }}"
type="hidden">
<label>お問い合わせ内容</label>
{!! nl2br(e($inputs['body'])) !!}
<input
name="body"
value="{{ $inputs['body'] }}"
type="hidden">
<button type="submit" name="action" value="back">
入力内容修正
</button>
<button type="submit" name="action" value="submit">
送信する
</button>
</form>
@endsection
```
```
complete.blade.php
@extends('layouts.app')
@section('content')
<h1>{{ __('送信完了') }}</h1>
@endsection
```
### 試したこと
[こちらにエラー対処のQiitaを参考](https://loop-never-ends.com/laravel-gmail-app-password/)
アプリパスワードを再発行。アプリを選択⇨その他名前を入力を選択して生成しました。
その後に`php artisan cache:clear php artisan config:cach php artisan serve`
最後に自分のローカルホストに入ってメールを送信しましたが同じエラーが発生します。
### 投稿者のバージョン情報
Laravel Framework 6.20.7