質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

5165閲覧

Laravelでメール送信をしたいが App\Mail\ で Class not found が発生してしまう

yayamako

総合スコア3

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2019/08/09 16:19

前提・実現したいこと

初めて質問させていただきます。
初心者ですが何卒よろしくお願いいたします。

Laravel5.5でお問い合わせフォームを作成し、フォームから送信した内容をデータベースに保存するところまでは実装できたので、
確認メールの送信機能をつけたいと思い以下の記事を参考にコードを書きました。
https://www.webopixel.net/php/1316.html
https://qiita.com/sayama0402/items/dd10cdb2aa22c8a035b3

そうしたところ、以下のようなエラーメッセージが出てしまいました。
useしているはずなのに Class not found と出てしまうので原因がわからず困っています。
どうかお力添え願います。

発生している問題・エラーメッセージ

Class 'App\Mail\ContactMail' not found

該当のソースコード

App\Mail\ContactMail.php

php

1<?php 2 3namespace App\Mail; 4 5use Illuminate\Bus\Queueable; 6use Illuminate\Mail\Mailable; 7use Illuminate\Queue\SerializesModels; 8use Illuminate\Contracts\Queue\ShouldQueue; 9 10class Contact extends Mailable 11{ 12 use Queueable, SerializesModels; 13 14 /** 15 * Create a new message instance. 16 * 17 * @return void 18 */ 19 protected $contact; 20 21 public function __construct($contact) 22 { 23 $this->contact = $contact; 24 } 25 26 /** 27 * Build the message. 28 * 29 * @return $this 30 */ 31 public function build() 32 { 33 $bcc = [ 34 'name' => 'BCCメールのタイトル', 35 'email' => 'hoge@hoge.com', 36 ]; 37 38 return $this 39 ->from('hoge@hoge.com') 40 ->subject('メールのタイトル') 41 ->view('mail.contact') 42 ->with(['contact' => $this->contact]) 43 ->bcc($bcc); 44 } 45} 46
ContactsController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests\ContactRequest; use App\Http\Controllers\Controller; use App\Contact; use App\Mail\ContactMail; use Illuminate\Support\Facades\Mail; class ContactsController extends Controller { public function contact() { $types = Contact::$types; return view('contacts.contact', [ 'types' => $types, ]); } public function confirm(Request $request) { $this->validate($request, [ 'name' => 'required|string|max:50', 'email' => 'required|string|email|max:191', 'type' => 'required', 'body' => 'required', ]); $contact = new Contact($request->all()); return view('contacts.confirm', [ 'contact' => $contact ]); } public function complete(Request $request) { $input = $request->except('action'); if ($request->action === '戻る') { return redirect()->action('ContactsController@contact')->withInput($input); } //データを保存し変数に代入 $contact = Contact::create($request->all()); //二重送信防止 $request->session()->regenerateToken(); //メール送信 Mail::to($contact->email) ->send(new ContactMail($contact)); Mail::to('hoge@hoge.com') ->send(new ContactMail($contact)); return view('contacts.complete'); } }

試したこと

new ContactMailの部分を\App\Mail\ContactMailと記述する
Mail::to($contact->email)\Mail::to($contact->email)と記述する

https://www.webopixel.net/php/1316.html
現在のコードは上記の記事を参考に書いたものになりますが、
下記の記事の内容でも試してみました。同じエラーでした。
https://qiita.com/sayama0402/items/dd10cdb2aa22c8a035b3

他に必要なコードがあれば追記いたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

class Contact extends Mailable

class ContactMail extends Mailable

投稿2019/08/09 16:32

xenbeat

総合スコア4258

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yayamako

2019/08/09 16:38

ありがとうございます!無事解決いたしました! 名前が紛らわしいと思って`Contact`から`ContactMail`に変えたのですが、それが原因となっていたんですね。 初歩的な問題ですみません。次からはクラスなどの名前を変えたい場合はその点に気をつけて書こうと思います。 本当にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問