tomirons / tuxedo
Simple transactional email classes/templates for Laravel 5.4 mailables
Installs: 2 570
Dependents: 0
Suggesters: 0
Security: 0
Stars: 94
Watchers: 3
Forks: 5
Open Issues: 0
Requires
- php: ^7.3
- illuminate/database: ^6.0|^7.0|^8.0
- illuminate/mail: ^6.0|^7.0|^8.0
- illuminate/support: ^6.0|^7.0|^8.0
Requires (Dev)
- mockery/mockery: ^1.4
- phpunit/phpunit: ^9.2
This package is not auto-updated.
Last update: 2024-12-22 03:00:38 UTC
README
Tuxedo is an easy way to send transactional emails with Laravel's Mail
classes, with the templates already done for you.
Contents
Installation
- 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
Classes
There are currently 3 different types of classes you can extend. ActionMailable
, AlertMailable
, and InvoiceMailable
, and each have their own special properties and methods.
Global Methods
These methods are available in ALL classes.
greeting($greeting)
- Sets the greeting for the message.salutation($salutation)
- Sets the salutation for the message.line($line)
- Add a line of text to the message.
ActionMailable
Methods
color($color)
- Sets the color of the button. Available options areblue
,green
, andred
.action($text, $url)
- Sets the button text and url.success()
- Sets the button color togreen
.error()
- Sets the button color tored
.info()
- Sets the button color toblue
.
Example
<?php namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Queue\SerializesModels; use Illuminate\Contracts\Queue\ShouldQueue; use TomIrons\Tuxedo\Mailables\ActionMailable; class ActionMail extends ActionMailable { use Queueable, SerializesModels; /** * Create a new message instance. * * @return void */ public function __construct() { // } /** * Build the message. * * @return $this */ public function build() { return $this->greeting('Hello!') ->line('Some line of text to tell you what exactly is going on.') ->action('Click here to do something fun', url('/')) ->line('Some other information to be displayed after the button.') ->salutation('Regards, Example App'); } }
Screenshot
AlertMailable
Methods
info()
- Sets the type of the alert toinfo
.warning()
- Sets the type of the alert towarning
.success()
- Sets the type of the alert tosuccess
.error()
- Sets the type of the alert toerror
.type($type)
- Sets the type of alert, options areinfo
,success
,warning
, anderror
.message($message)
- Sets the message to display in the alert.
Example
<?php namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Queue\SerializesModels; use Illuminate\Contracts\Queue\ShouldQueue; use TomIrons\Tuxedo\Mailables\AlertMailable; class AlertMail extends AlertMailable { use Queueable, SerializesModels; /** * Create a new message instance. * * @return void */ public function __construct() { // } /** * Build the message. * * @return $this */ public function build() { return $this->greeting('Hello!') ->info() ->message('Some text goes here to inform the user') ->line('Some line of text to tell you what exactly is going on.') ->salutation('Regards, Example App'); } }
Screenshot
InvoiceMailable
Properties
$keys|array
- Set which keys to use when looking for an item's name and price.
Methods
id($id)
- Sets the invoice ID.date($date)
- Sets the date to display at the top of the invoice table.due($date)
- Sets the due date of the invoice.items($items)
- Add an list of items to the invoice. Acceptable variable types areCollection
andarray
.calculate($taxPercent, $shipping)
- Calculates the tax and final total, MUST be called after items have been added.
Example
<?php namespace App\Mail; use Carbon\Carbon; use Illuminate\Bus\Queueable; use Illuminate\Queue\SerializesModels; use Illuminate\Contracts\Queue\ShouldQueue; use TomIrons\Tuxedo\Mailables\InvoiceMailable; class InvoiceMail extends InvoiceMailable { use Queueable, SerializesModels; /** * Create a new message instance. * * @return void */ public function __construct() { // } /** * Build the message. * * @return $this */ public function build() { return $this->id(123456) ->greeting('Hi John Doe!') ->date(Carbon::now()->format('l, M j Y \a\t g:i a')) ->due(Carbon::now()->addDays(7)->format('l, M j Y \a\t g:i a')) ->action('Click me to pay', url('/')) ->items([ ['product_name' => 'Example Product', 'product_price' => 123.99], ['product_name' => 'Second Product', 'product_price' => 321.99] ]) ->calculate(3, 15) ->salutation('Regards, Example App'); } }
Screenshot
License
Tuxedo is open-sourced software licensed under the MIT license