Use Illuminate Mail outside Laravel.

2.0.1 2015-08-03 16:29 UTC

This package is auto-updated.

Last update: 2024-07-14 04:07:22 UTC



composer require illuminate/config

composer require illuminate/mail

composer require hazzard/mail

composer require guzzlehttp/guzzle (required for Mailgun and Mandrill)


use Hazzard\Mail\Mail;
use Illuminate\Container\Container;
use Illuminate\Config\Repository as Config;

// Create a container and config repository.
$app = new Container;
$app['config'] = new Config;

// Set the mail & services configuration.
$app['config']['mail'] = require 'config/mail.php';
$app['config']['services'] = require 'config/services.php';

$mail = new Mail($container);

// Set the storage path used by the views.

// Make the instance available globally via static methods (optional).

// Create a class alias (optional). 
Using The Mailer
Mail::send('emails.welcome', ['key' => 'value'], function ($message) {
    $message->to('foo@example.com', 'John Smith')->subject('Welcome!');

The rest is the same as Laravel.

Providing A Custom View Factory

To provide a custom view factory register a view binding to the container.

The view factory must implement Illuminate\Contracts\View\Factory and the view Illuminate\Contracts\View\View (or at least to have a render method).

$container['view'] = new CustomViewFactory();