Blog スタッフブログ

Laravel システム開発

[Laravel]メール送信

システム開発担当のTFです。

やり方

  • .env のメール系を設定する
  • Mailable を継承したメール送信設定用クラスを作成する
  • Mailクラスを使い、先ほどのクラスを送信する

サンプル

# これに自身のメール設定を行う
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
<?php

namespace App\Mail;

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

class TestMail extends Mailable
{
    use Queueable, SerializesModels;
	
	public $name;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($name)
    {
		$this->name = $name;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
		// 本文はbladeを利用する
        return $this->from("test@test.test", "テスト送信者")
			->subject("テストメールのタイトルです")
			->view('mail.test');
    }
}
{{$name}}様<br>

テストメールです。<br>
// 省略

// メール送信用クラスの利用
use Illuminate\Support\Facades\Mail;
use App\Mail\TestMail;

// 省略

	// メール送信
	$mail_address = "送信先のメールアドレス";
	$name = "送信先の名前";
	Mail::to($mail_address)->send(new TestMail($name));
	
// 省略