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

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

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

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

Lumen

PHP Laravel製のマイクロフレームワーク

Q&A

1回答

4271閲覧

Laravel・Lumenからメール送信 (Controllerから)

atsushi6996

総合スコア8

Laravel 5

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

Lumen

PHP Laravel製のマイクロフレームワーク

0グッド

0クリップ

投稿2016/11/22 11:20

初めて投稿させていただきます。
現在開発中の案件の内容としまして
laravel5.2 管理者サイト
lumen API
開発に携わらせていただいております。

アプリからイベントが起きた際に管理者に通知メールを届けたいのですがエラーから逃れることが出来ません。

検証としまして管理者サイト側(Laravel)では簡単に設定できました。
なのでライブラリが入ってないのか?
もしくはライブラリがちゃんと入っているが動いていないのか?
切り分け出来ていない状態です。

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

FatalErrorException in AdviseController.php line 452: Class 'App\Http\Controllers\Mail' not found

###該当のソースコード

Controller use Illuminate\Contracts\Mail\Mailer; public function type_list(Request $request) { 452行目です Mail::send('emails.welcome', ['name' => 'user.name'], function($message) { $message->to('xxxxxxxxxxxxxx@gmail.com')->subject('test.laravel'); }); }
route $app->get('/advise/type/list', 'AdviseController@type_list');

###試したこと
composer update

"require": { "php": ">=5.5.9", "laravel/lumen-framework": "5.2.*", "vlucas/phpdotenv": "~2.2", "zircote/swagger-php": "2.0.5", "aws/aws-sdk-php-laravel": "~3.0", "ktquez/lumen-image": "^1.0", "duccio/apns-php": "dev-master", "pda/pheanstalk": "~3.0", "guzzlehttp/guzzle": "~5.3|~6.0", "illuminate/mail": "5.2.*" },

###補足情報(言語/FW/ツール等のバージョンなど)
PHP 5.5.30

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

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

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

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

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

guest

回答1

0

以下のように''を付加してください。

PHP

1\Mail::send('emails.welcome', ['name' => 'user.name'], function($message) {

同様の質問がstackoverflow.comにありました。ので詳細はこちらを参照ください。
stackoverflow.com)Mail::send() not working in Laravel 5

投稿2016/11/23 02:33

Y.H.

総合スコア7914

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

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

atsushi6996

2016/11/24 09:46

Y.H.さん コメントありがとうございます。 ご教授通りにバックスラッシュ(¥)を入れてみましたが、エラーは解消せずでした。 FatalErrorException in AdviseController.php line 451: Class 'Mail' not found 該当ソース 451行目 \Mail::send('emails.welcome', ['name' => 'user.name'], function($message) {
Y.H.

2016/11/24 10:03

config/app.php の aliases にMailの項目はありますか? 'aliases' => array(.... 'Mail' => 'Illuminate\Support\Facades\Mail', ... 略 ); あれば use Mailを追加でどうですか? use Illuminate\Contracts\Mail\Mailer; use Mail;
atsushi6996

2016/11/25 01:14

再度ご教授ありがとうございます。 config/app.phpは存在時しておりませんでした。 configフォルダ内に存在するファイルは3つconst.php image.php mail.phpの3ファイルでした。 なので、use Mailとは書かず、フルパスで指定しました use Illuminate\Support\Facades\Mail; Illuminate\Support\Facades\Mail  ここにはこのような記述があります。 以下Mail.phpの全文です。 <?php namespace Illuminate\Support\Facades; /** * @see \Illuminate\Mail\Mailer */ class Mail extends Facade { /** * Get the registered name of the component. * * @return string */ protected static function getFacadeAccessor() { return 'mailer'; } } maillerに遷移しているので、Controller内に指定した use Illuminate\Contracts\Mail\Mailer;こちらに遷移する。(この認識でよろしいでしょうか?) そこには以下の内容の通りです。 <?php namespace Illuminate\Contracts\Mail; interface Mailer { /** * Send a new message when only a raw text part. * * @param string $text * @param \Closure|string $callback * @return int */ public function raw($text, $callback); /** * Send a new message using a view. * * @param string|array $view * @param array $data * @param \Closure|string $callback * @return void */ public function send($view, array $data, $callback); /** * Get the array of failed recipients. * * @return array */ public function failures(); send()があるので使えると思うのですが、エラーとしてMailがないと怒られている状態です 。 今現在のエラー内容は FatalErrorException in AdviseController.php line 452: 該当ソース use Illuminate\Contracts\Mail\Mailer; use Illuminate\Support\Facades\Mail; 452行目 \Mail::send('emails.welcome', ['name' => 'user.name'], function($message) { Class 'Mail' not found まだ確認すべき点がありましたら、ご教授お願いいたします。
Y.H.

2016/11/25 01:56

Illuminate\Support\Facades\Mail::send('emails.welcome', ['name' => 'user.name'], function($message) { ではどうでしょうか?
atsushi6996

2016/11/25 04:36 編集

Y.H.さん 再々度ご教授ありがとうございます。 ControllerにIlluminate\Support\Facades\Mail::send(....) にしてみましたが、やはりエラーは解消出来ませんでした。 FatalErrorException in AdviseController.php line 450: Class 'App\Http\Controllers\Illuminate\Support\Facades\Mail' not found 同じエラーでした見つからないようです。 ・pathはあっているがファイルがない ・ただpathが間違ってる  この2択だと思っているのですが、 参照先を確認していることからファイルは存在していると思います。 なので指定先が間違っているからそこには存在しないよって怒られていると思いうのですが...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問