Filament plugin for instant e-mail alerts on web errors, simplifying monitoring and application stability.
Sends error details instantly via email with all relevant context, including:
In addition to email notifications, you can configure a Discord webhook to send error alerts directly to a Discord channel. The webhook includes:
To enable this, set the ERROR_MAILER_DISCORD_WEBHOOK
environment variable in your .env
file with your Discord webhook URL.
ERROR_MAILER_DISCORD_WEBHOOK="https://discord.com/api/webhooks/your-webhook-id/your-webhook-token"
Each error notification includes a unique link to a dedicated error details page in your application.
The page displays:
To prevent excessive storage, you can schedule a cleanup task to remove old errors.
Example:
$schedule->call(function () { $storagePath = config('error-mailer.storage_path'); $files = File::files($storagePath); foreach ($files as $file) { if ($file->getMTime() < now()->subMonths(3)->timestamp) { File::delete($file->getRealPath()); } }})->daily();
You can install the package via composer:
composer require hugomyb/filament-error-mailer
Then, publish the config file with:
php artisan vendor:publish --tag="error-mailer-config"
This will create a config/error-mailer.php
file in your Laravel project.
This is the contents of the published config file:
return [ 'email' => [ 'recipient' => ['recipient1@example.com'], 'bcc' => [], 'cc' => [], 'subject' => 'An error has occurred - ' . env('APP_NAME'), ], 'disabledOn' => [ // ], 'cacheCooldown' => 10, // in minutes 'webhooks' => [ 'discord' => env('ERROR_MAILER_DISCORD_WEBHOOK'), 'message' => [ 'title' => 'Error Alert - ' . env('APP_NAME'), 'description' => 'An error has occured in the application.', 'error' => 'Error', 'file' => 'File', 'line' => 'Line', 'details_link' => 'See more details' ], ], 'storage_path' => storage_path('app/errors'),];
Optionally, you can publish views using:
php artisan vendor:publish --tag="error-mailer-views"
After publishing the configuration file, you can modify it to suit your needs. Open config/error-mailer.php
and
customize the following options:
'recipient'
: Set email addresses where error notifications will be sent.
'bcc'
: Set email addresses where error notifications will be sent in BCC.
'cc'
: Set email addresses where error notifications will be sent in CC.
'subject'
: Define the subject line for error notification emails. You can use placeholders like env('APP_NAME')
to
dynamically include your application's name.
'cacheCooldown'
: Set the cooling-off period (in minutes) for error notifications. If the same error occurs several times within this period
'disabledOn'
: You can specify a list of environments (based on APP_ENV
) where the Error Mailer will be disabled.
For example, if you want to disable the mailer in the local environment, add 'local' to the array:
'disabledOn' => [ 'local',],
'webhooks'
: Add a Discord webhook URL and customize the webhook message fields.'storage_path'
: Define the directory where JSON error files will be stored. Defaults to storage/app/errors
.⚠️ IMPORTANT ! Make sure to configure a mail server in your
.env
file :
MAIL_MAILER=smtpMAIL_HOST=your-smtp-host.comMAIL_PORT=587MAIL_USERNAME=your-smtp-usernameMAIL_PASSWORD=your-smtp-passwordMAIL_ENCRYPTION=tls
If the mail server is not configured in the .env
file, email notifications will not be sent.
Finally, don't forget to register the plugin in your AdminPanelProvider
:
...->plugins([ FilamentErrorMailerPlugin::make()])
This plugin is also available for a classic Laravel project without FilamentPHP : LaravelErrorMailer
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.