0
0

【Laravel】Illuminateにある主要メソッド Mail編

Last updated at Posted at 2024-07-28

言語

  • Laravel8

Illuminateとは

  • Laravelが提供する様々なサービスやコンポーネントを構成するための基盤を提供している。
  • サービスやコンポーネントはIlluminate名前空間内に整理されている

どこにあるか?

プロジェクトディレクトリ\vendor\laravel\Framework\src\Illuminate\~

Illuminate\Mail

  • メール送信機能を提供するクラスがある。

to($users)

  • メールの送信先アドレスを設定
     Mail::to('example@example.com')->send(new ExampleMail());
    

cc($users)

  • メールのCC(カーボンコピー)祖往診先アドレスを設定
     Mail::to('example@example.com')->cc('cc@example.com')->send(new ExampleMail());
    

bcc($users)

  • メールのBCC(ブラインドカーボンコピー)送信先アドレスを設定
     Mail::to('example@example.com')->bcc('bcc@example.com')->send(new WelcomeMail());
    

send($view, array $data = [], $callback = null)

  • メールを送信
     Mail::send('emails.test', ['name' => 'qiita'], function ($message) {
         $message->to('example@example.com')->subject('Hello');
     });
    

queue($view, array $data = [], $callback = null)

  • メールをキューに追加して非同期で送信
     Mail::queue('emails.welcome', ['name' => 'qiita'], function ($message) {
        $message->to('example@example.com')->subject('Hello');
    });
    
    

later($delay, $view, array $data = [], $callback = null)

  • 指定した遅延時間後にメールをキューに追加して送信
     Mail::later(now()->addMinutes(10), 'emails.test', ['name' => 'qiita'], function ($message) {
        $message->to('example@example.com')->subject('Hello');
    });
    
    

raw($text, $callback)

  • プレーンテキストのメールを送信
     Mail::raw('This is a plain text email', function ($message) {
        $message->to('example@example.com')->subject('Plain Text Email');
    });
    
    

html($html, $callback)

  • HTML形式のメールを送信
     Mail::html('<h1>HTML Email</h1>', function ($message) {
        $message->to('example@example.com')->subject('HTML Email');
    });
    

使用例

コントローラー
use Illuminate\Support\Facades\Mail;
use App\Models\User;
use App\Mail\WelcomeMail;

class UserController extends Controller
{
    public function sendWelcomeEmail()
    {
        $user = User::find(1);
        Mail::to($user->email)->send(new WelcomeMail($user));
    }
}
app\Mail\WelcomeMail.php
namespace App\Mail;

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

class WelcomeMail extends Mailable
{
    use Queueable, SerializesModels;

    public $user;

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

    public function build()
    {
        return $this->view('emails.welcome')->with(['user' => $this->user]);
    }
}
resource\views\emails\welcome.blade.php
<body>
    <h1>Hello</h1>
    <p>Welcome to our platform!</p>
</body>

私のIlluminate関連記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0