Skip to content

View all the mailables in your laravel app at a single place

License

Notifications You must be signed in to change notification settings

paulredmond/laravel-mail-viewer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

View all your mailables at a single place

Latest Version Build Status Total Downloads

The Design and content team members often need access to the emails your app will be sending out to the users. This is a fairly simple package that makes it possible and tries to minimize developer dependency. By using this package, you can have a dedicated route to view all your mailables at a single place. Having shareable URLs to view the mails makes the team co-ordination more smooth.

Installation

You can install this package via composer using this command:

composer require joggapp/laravel-mail-viewer

The package will automatically register itself.

You will have to add the mailables and configure the other settings using the package's config file in order to to use this package. You can publish the config file with:

php artisan vendor:publish --provider="JoggApp\MailViewer\MailViewerServiceProvider"

This will create the package's config file called mailviewer.php in the config directory. These are the contents of the published config file:

return [
    /*
    |--------------------------------------------------------------------------
    | Only the mailables registered here can be accesed using this package
    |--------------------------------------------------------------------------
    |
    | You have to add the mailables including their dependencies
    | in the following array. When asked for a mailable, the
    | package will search it here for its defination.
    |
    | Eg: [ new OrderShipped(factory(Order::class)->create()) ]
    |
    */

    'mailables' => [],

    /*
    |--------------------------------------------------------------------------
    | URL where you want to view the mails
    |--------------------------------------------------------------------------
    |
    | This is the URL where you can view all the
    | mailables registered above.
    |
    */

    'url' => 'mails',

    /*
    |--------------------------------------------------------------------------
    | The environments in which the url should be accesible
    |--------------------------------------------------------------------------
    |
    | If you don't want to use this package in production env
    | at all, you can restrict that using this option
    | rather than by using a middleware.
    |
    */

    'allowed_environments' => ['local', 'staging', 'testing'],

    /*
    |--------------------------------------------------------------------------
    | Middlewares that should be applied to the URL
    |--------------------------------------------------------------------------
    |
    | The value should be an array of fully qualified
    | class names of the middlware classes.
    |
    | Eg: [Authenticate::class, CheckForMaintenanceMode::class]
    | Don't forget to import the classes at the top!
    |
    */

    'middlewares' => [],
];

How to use

  • After setting up the config values as described above, you can see the list of all mailables by visiting the /mails route (considering the default url is 'mails' in the config file). You can modify it to whatever you want as per your needs.

  • You can also restrict the environments the package should list the mailables in. By default, the allowed_environments config is set to allow 3 environments: local, staging & testing. You can further secure it using the middlewares config.

  • Default view:

List of all mails A particular mail rendered

Testing

You can run the tests with:

vendor/bin/phpunit

Changelog

Please see CHANGELOG for more information what has changed recently.

Security

If you discover any security related issues, please email harish@jogg.co instead of using the issue tracker.

Credits

License

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

About

View all the mailables in your laravel app at a single place

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 85.6%
  • HTML 14.4%