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

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

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

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

Laravel 5

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

Q&A

解決済

1回答

17272閲覧

laravelのMail::send()を使用した場合に送信結果を取得できますか

red13

総合スコア79

Laravel

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

Laravel 5

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

0グッド

0クリップ

投稿2016/03/09 01:45

Mail::send(テンプレート, $data, function($message) use(メールアドレス) {
$message->to(メールアドレス);
});
上記のような実装でメールを送信しています。
実在するメールアドレスの場合はメールを送信できています。
実在しないメールアドレスの場合はメール受信できないのですが、差出人のアドレスにも受信できていません。
Mail::send()を使用した場合に送信に失敗した等の結果を取得できますでしょうか。

理想としては
Mail::send(テンプレート, $data, function($message) use(メールアドレス) {
$message->to(メールアドレス);
});

if (送信失敗) {
// 処理
}
のようなことを実装したいです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Mail::failures() で送信に失敗した送信先のアドレスの配列が返りますのでこれでチェックすればいいかと思います。

ただし送信しようとしたときにすぐにエラーになるとは限らないので注意。中継があったりいったん溜めて再送があったりするので先の方でエラーになった場合は送信時にはわからないのですよね。あとでエラーメールは返ってきますが。

投稿2016/03/09 03:39

crhg

総合スコア1175

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

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

red13

2016/03/09 04:16

失敗したアドレスは取得できました。 しかし、メール送信の処理は for () { // メール送信 } と、ループの中で実行しており失敗した送信先の配列が ループ回数分だけ作成されてしまいます。 リセットされているわけではないんですね。
crhg

2016/03/09 07:29

一度mailerのインスタンスを作ったらずっと使い回すのでそうなってしまいますね。逆にそうなってるからMail::send()の結果をMail::failures()で取り出せる訳ですが。 気にせずため込んで最後にまとめて処理するか、一回毎に新しいmailerを作るようにするかどちらかだと思います。 新しく作るようにするのは2つやり方が考えられます (1) 明示的にnewする。 (2) ファサードとコンテナが憶えているインスタンスの情報を消去 Mail::clearResolvedInstance('mailer'); App::forgetInstance('mailer'); 2重に持っているので両方消さないとだめでちょっと面倒です。
red13

2016/03/10 01:56

それか別方法として、 Mail::failures()からメールアドレスを検索して、アドレスがあれば処理。 とかもありかもしれませんね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問