実現したいこと
下記のサイトを参考にして、お問い合わせフォームを作成したのですが、お問い合わせした側にはメールが届くのですが、相手側つまりサイト側のメールアドレスにメールが届きません。
このサイト側にメールが届かないのは、そのような設定を行っていないからでしょうか?
参考サイト
【Laravel】お問合せフォーム作り方
前提
お問い合わせフォームから送信後、お問い合わせ側のメールアドレスにはお問い合わせを受け付けた旨のメールが送られています。
発生している問題・エラーメッセージ
サイト側のメールアドレスにお問い合わせのメール来ない為、お問い合わせを確認することが出来ません。
該当のソースコード
ContactController
1<?php 2 3namespace App\Http\Controllers; 4use App\User; 5use Illuminate\Support\Facades\Auth; 6use Illuminate\Http\Request; 7use App\Mail\ContactSendmail; 8class ContactController extends Controller 9{ 10 public function index() 11 { 12 $user = Auth::user(); 13 //フォーム入力画ページのviewを表示 14 return view('contacts.index', ['user'=> $user]); 15 } 16 17 public function confirm(Request $request) 18 { 19 //バリデーションを実行(結果に問題があれば処理を中断してエラーを返す) 20 $request->validate([ 21 'email' => 'required|email', 22 'title' => 'required', 23 'body' => 'required', 24 ]); 25 26 //フォームから受け取ったすべてのinputの値を取得 27 $inputs = $request->all(); 28 $user = Auth::user(); 29 //入力内容確認ページのviewに変数を渡して表示 30 return view('contacts.confirm', [ 31 'inputs' => $inputs, 32 'user'=> $user 33 ]); 34 } 35 36 public function send(Request $request) 37 { 38 //バリデーションを実行(結果に問題があれば処理を中断してエラーを返す) 39 $request->validate([ 40 'email' => 'required|email', 41 'title' => 'required', 42 'body' => 'required' 43 ]); 44 45 //フォームから受け取ったactionの値を取得 46 $action = $request->input('action'); 47 48 //フォームから受け取ったactionを除いたinputの値を取得 49 $inputs = $request->except('action'); 50 51 //actionの値で分岐 52 if($action !== 'submit'){ 53 return redirect() 54 ->route('contacts.index') 55 ->withInput($inputs); 56 57 } else { 58 //入力されたメールアドレスにメールを送信 59 \Mail::to($inputs['email'])->send(new ContactSendmail($inputs)); 60 61 //再送信を防ぐためにトークンを再発行 62 $request->session()->regenerateToken(); 63 $user = Auth::user(); 64 //送信完了ページのviewを表示 65 return view('contacts.thanks', ['user'=> $user]); 66 67 } 68 } 69}
ContactSendMail
1<?php 2 3namespace App\Mail; 4 5use Illuminate\Bus\Queueable; 6use Illuminate\Contracts\Queue\ShouldQueue; 7use Illuminate\Mail\Mailable; 8use Illuminate\Mail\Mailables\Content; 9use Illuminate\Mail\Mailables\Envelope; 10use Illuminate\Queue\SerializesModels; 11 12class ContactSendmail extends Mailable 13{ 14 use Queueable, SerializesModels; 15 16 private $email; 17 private $title; 18 private $body; 19 20 /** 21 * Create a new message instance. 22 * 23 * @return void 24 */ 25 public function __construct( $inputs ) 26 { 27 $this->email = $inputs['email']; 28 $this->title = $inputs['title']; 29 $this->body = $inputs['body']; 30 } 31 32 /** 33 * Build the message. 34 * 35 * @return $this 36 */ 37 public function build() 38 { 39 return $this 40 ->from('**********@gmail.com') 41 ->subject('お問い合わせメール') 42 ->view('contacts.mail') 43 ->with([ 44 'email' => $this->email, 45 'title' => $this->title, 46 'body' => $this->body, 47 ]); 48 } 49}
mail.balde.php
1お問い合わせ内容を受け付けました。<br> 2<br> 3■メールアドレス<br> 4{!! $email !!}<br> 5<br> 6■タイトル<br> 7{!! $title !!}<br> 8<br> 9■お問い合わせ内容<br> 10{!! nl2br($body) !!}<br>
試したこと
ContactSendMailにサイト側のメールアドレスに送信するコードを書く必要があるか、調べています。
補足情報(FW/ツールのバージョンなど)
PHP8
Laravel10
0 コメント