Tuxedo is an easy way to send transactional emails with Laravel's Mail
classes, with the templates already done for you.
- Run the following command:
$ composer require tomirons/tuxedo
- Open your
config/app.php
and add the following class to yourproviders
array:
TomIrons\Tuxedo\TuxedoServiceProvider::class
- (Optional) If you would like to edit the templates, run the following command to publish them
php artisan vendor:publish --provider=TomIrons\Tuxedo\TuxedoServiceProvider
There are currently 3 different types of classes you can extend. ActionMailable
, AlertMailable
, and InvoiceMailable
, and each have their own special properties and methods.
gretting($gretting)
- Sets the greeting for the message.line($line)
- Add a line of text to the message.
header($header)
- Sets th 8000 e header text for the message, it'll only be displayed if it's set.level($level)
- Sets the level type of the button. Available options aresuccess
anderror
.action($text, $url)
- Sets the button text and url.success()
- Sets the level type tosuccess
.error()
- Sets the level type toerror
.
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use TomIrons\Tuxedo\Mailables\ActionMailable;
class TuxedoTestMail extends ActionMailable
{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Build the message.
*
*/
public function build()
{
return $this->header('Some Random Header')
->level('success')
->line('Some line of text to tell you what exactly is going on.')
->action('Click Me', url('/'))
->line('Some other information to be displayed after the button.');
}
}
type($type)
- Sets the type of alert, options aresuccess
,warning
, anderror
.message($message)
- Sets the message to display in the alert.
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use TomIrons\Tuxedo\Mailables\AlertMailable;
class TuxedoTestMail extends AlertMailable
{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Build the message.
*
*/
public function build()
{
return $this->type('success')
->message('A message that goes inside the alert.')
->line('Some line of text to tell you what exactly is going on.');
}
}
information($name, $number, $date)
- Sets the information that gets displayed at the top invoice.item($name, $price)
- Add an item to the invoice
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use TomIrons\Tuxedo\Mailables\InvoiceMailable;
class TuxedoTestMail extends InvoiceMailable
{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Build the message.
*
*/
public function build()
{
return $this->information('John Doe', '123456', date('F jS, Y'))
->item('Example Product', '123.99')
->item('Another Example Product', '321.99');
}
}
Tuxedo is open-sourced software licensed under the MIT license