Laravel

Use MailSetu as a custom mail driver in Laravel.

Installation

bash
composer require mailsetu/laravel-mailsetu

Configuration

Add to config/mail.php:

php
'mailers' => [
    'mailsetu' => [
        'transport' => 'mailsetu',
    ],
],

.env setup

bash
MAIL_MAILER=mailsetu
MAILSETU_API_KEY=ms_live_your_key_here
MAIL_FROM_ADDRESS=noreply@yourapp.com
MAIL_FROM_NAME="Your App"

Using Laravel Mail

Once configured, use Laravel's standard Mail facade:

php
use Illuminate\Support\Facades\Mail;
use App\Mail\WelcomeMail;

Mail::to('user@example.com')->send(new WelcomeMail($user));

Mailable class

php
<?php
namespace App\Mail;

use Illuminate\Mail\Mailable;

class WelcomeMail extends Mailable
{
    public function __construct(public $user) {}

    public function build(): static
    {
        return $this
            ->subject("Welcome, {$this->user->name}!")
            ->view('emails.welcome')
            ->with(['user' => $this->user]);
    }
}