前提・実現したいこと
AWSでデプロイしたアプリで、問い合わせのメールを送信をしたい。
発生している問題・エラーメッセージ
ローカル環境ではメール送信は出来たのですが、AWSにデプロイしてメールを送信したところ
下記の認証エラーのメッセージが出てしまいました。
Swift_TransportException Expected response code 250 but got code "530", with message "530 5.7.1 Authentication required "
該当のソースコード
.env
MAIL_DRIVER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_ENCRYPTION=tls MAIL_USERNAME=*********@gmail.com MAIL_PASSWORD=****** MAIL_FROM_ADDRESS=*****@gmail.com MAIL_FROM_NAME******
confirm.blade.php
@extends('layouts.home') @section('title', 'お問い合わせ確認画面') @section('content') <div class="contact-form"> <h3 class="contact-title">お問い合わせ内容の確認</h3> <form action="{{ action('ContactController@finish') }}" method="post"> @csrf <div class="confirm"> <label for="name" class="contact-text">お名前</label> <p class="confirm-message"> {{ $inputs['name'] }} </p> <input class="box" type="hidden" id="name" name="name" value="{{ $inputs['name'] }}"> <label for="tel" class="contact-text">電話番号</label> <input class="box" type="hidden" id="tel" placeholder="半角、ハイフン無しでお願いします。" name="tel" value="{{ $inputs['tel'] }}"> <p class="confirm-message"> {{ $inputs['tel'] }} </p> <label for="mail" class="contact-text">メールアドレス</label> <input class="mail" type="hidden" id="mail" name="email" value="{{ $inputs['email'] }}"> <p class="confirm-message"> {{ $inputs['email'] }} </p> <label for="body" class="contact-text">お問い合わせ内容</label> <input id="body" type="hidden" name="body" value="{{ $inputs['body'] }}"> <p class="confirm-message"> {{ $inputs['body'] }} </p> </div> <button class="correction" type="button" onclick="history.back(-1)">入力内容修正</button> <button class="submit" type="submit">送信する</button> </form> </div> @endsection
Contact.Controller.php
<?php namespace App\Http\Controllers; use App\Mail\ContactSendmail; use Illuminate\Http\Request; use Illuminate\Support\Facades\Mail; class ContactController extends Controller { public function form() { return view('contact/form'); } public function confirm(Request $request) { // バリデーションを実行、結果に問題があったら中断してエラーを返す $request->validate([ 'name' => 'required', 'tel' => 'required', 'email' => 'required', 'body' => 'required', ]); // フォームから受け取った全てのinputの値を取得 $inputs = $request->all(); // 内容確認ページのviewに変数を渡して表示 return view('contact/confirm', [ 'inputs' => $inputs, ]); } public function finish(Request $request) { $inputs = $request->all(); Mail::to('*******@gmail.com')->send(new ContactSendmail($inputs)); // 二重送信防止の為トークンを再生成 $request->session()->regenerateToken(); return view('contact/sent'); } }
試したこと
'php artisan config:cache'を実行しましたが結果は同じでした。
AWS側に何か設定等の問題があるのでは?と考え、
herokuでデプロイしたところ、そちらは大丈夫でした。
いろいろ検索しましたが、解決できませんでした。
初心者で質問の仕方も足らないところがあるかもしれませんが、
どなたかアドバイスお願いします。
補足情報(FW/ツールのバージョンなど)
Laravel 6.2.0
PHP 7.2.19
cloud 9
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/02 09:22