メール送信

Laravel 5.6 ではメール送信機能がデフォルトでサービスとして組み込まれています。簡単にメールを送信することができます。


設定

メールの設定に関しては、以前に書いたメールの環境設定を参照してください。


Mailable の作成

artisan コマンドで mailable を作成します

php artisan make:mail Hello

app/Mail/Hello.php が作成されるので以下のように修正します。

<?php
// app/Mail/Hello.php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

class Hello extends Mailable
{
    use Queueable, SerializesModels;

    protected $name;

    public function __construct($name)
    {
        $this->name = $name;
    }

    public function build()
    {
        return $this->from('sender@example.com')
            ->view('emails.hello')
            ->with([
                'name' => $this->name
            ]);
    }
}
  • __construct() でメールを編集するために必要な情報を受け取ります。
  • build() では VIEW を使ってメールを構築しています。
  • with() で必要な情報を VIEW に渡します。
  • from() は省略すると .env で設定した MAIL_FROM_ADDRESS が使用されます。

View

メールの本文で使用するビューを作成します。

{{-- resources/views/emails/hello.blade.php --}}

ようこそ、{{ $name }} さん<br>

いっしょに Laravel で開発しましょう。

メールの送信

この例では、クロージャーを使ったルーティングでメールを送信します。

<?php
// routes/web.php

use App\Mail\Hello;

Route::get('/hello/{name?}', function ($name = 'ゲスト') {
    Mail::to('reciver@example.com')
        ->send(new Hello($name));

    return "Hello メールを ${name} さんに送りました。";
});

Mailファサードを使いメールを送信します。

  • to() で宛先のアドレスを指定します。
  • send() で送信する Mailable 作成(new)して渡します。 new するときに必要な情報を渡します。

動作確認

http://localhost:8000/hello/ホンダ にアクセスしてメールを送信してみます。

ようこそ、ホンダ さん

いっしょに Laravel で開発しましょう。

上記のメールが宛先に届きました。とても簡単で超クールです。

メール送信の詳細は公式サイトのドキュメントもご覧ください。
http://laravel.com/docs/5.6/mail

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中