Laravel5.2でメール送信(簡易版)

2018/10/12

mainvisual

お問い合わせフォームを作成する前にもう少し簡易的なものを作成したいと思います。

送信メッセージをあらかじめこちらで用意し、URLにアクセスしたらメールを送信するプログラムを作成します。

 

前提条件

メールを送信する設定がすでに終わっている前提で話を進めます。

メール送信機能の実装について

 

進め方

【1】ルーディングの設定

【2】コントローラの作成

【3】コントローラにメール送信機能を実装

【4】送信するメール本文の作成

【5】メール送信完了画面の作成

【6】動作確認

 

【1】ルーディングの設定

http://{ドメイン}/mail をアクセスするとMailControllerのsendMailメソッドがコールされるように記述します。

Route::get('mail','MailController@sendMail');

 

【2】コントローラの作成

Artisanコマンドでコントローラを自動生成します。

php artisan make:controller MailController

 

【3】コントローラにメール送信機能を実装

メッセージを送るにはMailファサードのsendメソッドを使います。

useでMailファサードをインポートします。

sendメソッドは3つの引数を取ります。

【文法】
Mail::send(['text' => '送信メールのメッセージ'], $data, function($message){ $message->to("maillアドレス")->subject("タイトル"); });
【解説】
第1引数は送信するメールのメッセージです。Bladeのビューとして作成します。

第2引数はビューに渡すデータです。配列で渡します。

第3引数は「クロージャー」で、メールの様々なオプションを指定できます。

まとめると以下のように記述します。

namespace App\Http\Controllers;

use Mail;
use Illuminate\Http\Request;
use App\Http\Requests;

class MailController extends Controller
{
  //メール送信機能
public function sendMail()
{
$data=[];
Mail::send(['text' => 'mail.temp'], $data, function($message){ $message->to("xxx@xxxxxx.com")->subject("テスト送信"); });

return view('mail.complete');
}
}

 

【4】送信するメール本文の作成

sendメソッドの第一引数で

['text' => 'mail.temp']

と指定したのでresources/views/mail/temp.blade.phpを作成し、メールの本文を書きます。

テストメール:本文

 

【5】メール送信完了画面の作成

sendMailメソッドでは最後にビュー関数でmai.complateを表示させるように記述しています。

resources/views/mail/complate.blade.phpのファイルを作成し送信完了画面作ります。

<div>
<h1>メール送信完了!</h1>
</div>

 

【6】動作確認

http://{ドメイン}/mail

にアクセスして『メール送信完了!』の画面がちゃんと表示されているか確認します。

次にメールがちゃんと届いていればOKです。

img01

簡易版のメール送信に関しては以上です。

本庄マサノリ

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら

>> Twitter をフォローする

 

-実践知識