Skip to content

Latest commit

 

History

History
68 lines (50 loc) · 1.56 KB

File metadata and controls

68 lines (50 loc) · 1.56 KB

Laravel5 Mail Dispatcher

Installation

{
    "require": {
        ...
        
        "stanwarri/mail-dispatcher": "dev-master"
    }
}

Usage

1. Create a Mail Handler

namespace App\Mailers\Users;

class SendConfirmation
{
    protected $user;
    
    public function __construct(User $user)
    {
        $this->user = $user;
    }
    
    public function mail(Mailer $mailer)
    {
        $this->user->confirmation_code = str_random(32);
        $this->user->save();

        $mailer->send(
            'emails.confirmation',
            [
                'user' => $this->user,
                'code' => $this->user->confirmation_code
            ],
            function ($message) {
                $message->to($this->user->email)
                    ->subject(sprintf('%s %s', config('app.title'), 'Email Verification'));
            }
        );
    }
}

Note: You can type hint mail() with Objects you want resolved out of the Container (As is Mailer in the example).

2. Just add the SendsMail trait to any class you want to dispatch a mail like so:

use Stanwarri\MailDispatcher\SendsMail;

class UserAuthController
{
    use SendsMail;
    
    public function register()
    {
        $user = User::whereId(1)->first();
        
        $this->mail(
            new SendConfirmation($user)
        );
    }
}