dojo-sh/database-mail-templates

Your Package Description here

0.0.1 2022-03-22 09:07 UTC

This package is auto-updated.

Last update: 2024-10-22 20:14:28 UTC


README

Software License Travis Total Downloads

Render laravel mail using a blade template stored in the database

Install

composer require dojo-sh/database-mail-templates

Migrate

php artisan migrate

Publish config

php artisan vendor:publish --provider="DojoSh\DatabaseMailTemplates\DatabaseMailTemplatesServiceProvider" --tag=config

Override default template

php artisan vendor:publish --provider="DojoSh\DatabaseMailTemplates\DatabaseMailTemplatesServiceProvider" --tag=views    

Usage

Create a new mailable

php artisan make:database-mail-template {name} {--notification}

Ex. Mailable Class

namespace App\Mail;

use DojoSh\DatabaseMailTemplates\TemplateMailable;
use Illuminate\Contracts\Queue\ShouldQueue;

class TestMail extends TemplateMailable
{
    public $templateVariable;
       
    public function __construct($templateVariable)
    {
        $this->templateVariable = $templateVariable;
    }        
}

All public properties will be available in the template

Mailable templates admin panel

http://application.link/database-mail-templates

Preview mail

class ContractApprovedMail extends TemplateMailable
{
    public $contract;

    public function __construct($contract)
    {
        $this->contract = $contract;
    }

    // Override this function and return mockup data to preview the mail
    public static function getPreviewInstance()
    {
        return new self(Contract::first());
    }
}    

Testing

Run the tests with:

vendor/bin/phpunit

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security-related issues, please email s.arida@dojo.sh instead of using the issue tracker.

License

The MIT License (MIT). Please see License File for more information.