justijndepover / laravel-inbox
Intercept outgoing emails in your Laravel application
Installs: 29
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 2
Forks: 0
Open Issues: 1
Language:Vue
Requires (Dev)
- orchestra/testbench: ^6.2
README
Add an inbox screen to your application to monitor all outgoing emails.
Caution
This application is still in development and could implement breaking changes. Please use at your own risk.
Installation
You can install the package with composer
composer require justijndepover/laravel-inbox
After the installation, you have to publish the assets and perform the migration.
php artisan inbox:install --migration
If needed, you can also publish the config file immediately
php artisan inbox:install --config
This is the config file
return [ /* * This setting determines if the Laravel Inbox package should Listen * to Sending mail events. */ 'listener_enabled' => (config('app.env') != 'production'), /* * This setting determines if the Laravel Inbox package should open up * the endpoint to view the inbox application. */ 'application_enabled' => (config('app.env') != 'production'), /* * This is the URI path where Laravel Inbox will be accessible from. */ 'path' => 'inbox', /* * These middleware will get attached onto each Laravel Inbox route, giving you * the chance to add your own middleware to this list or change any of * the existing middleware. Or, you can simply stick with this list. */ 'middleware' => ['web'], ];
Usage
The application will expose an endpoint at /inbox
.
By default, the package only works if your application environment is not set to production. You can change this behaviour by overwriting the inbox.listener_enabled
and inbox.application_enabled
setting.
Authorization
The /inbox
endpoint is available to everyone. If you'd like to protect this route, you can do so by registering the following gate.
use Illuminate\Support\Facades\Gate; Gate::define('viewInbox', function ($user) { // your logic here return $user->isAdmin(); });
A good place to do this is in your AuthServiceProvider
that ships with Laravel by default.
Use cases
The main purpose for creating this package was to provide an alternative to mailtrap. That's also why the package only works if the application is not in production mode.
If you want to use the package for the same reason, it's recommended to set your mail driver to log
inside your env file, to prevent your application from actually sending emails.
MAIL_MAILER=log
Security
If you find any security related issues, please open an issue or contact me directly at justijndepover@gmail.com.
Contribution
If you wish to make any changes or improvements to the package, feel free to make a pull request.
License
The MIT License (MIT). Please see License File for more information.