Skip to content
Laravel exception notifier will send an email of the error along with the stack trace to the chosen recipients. This Package includes all necessary traits, views, configs, and Mailers for email notifications upon your applications exceptions. You can customize who send to, cc to, bcc to, enable/disable, and custom subject or default subject base…
Branch: master
Clone or download
Latest commit 06f2841 Mar 25, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src add travis-ci and facade Mar 25, 2019
tests add travis-ci and facade Mar 25, 2019
.env.travis add travis-ci and facade Mar 25, 2019
.gitignore add travis-ci and facade Mar 25, 2019
.travis.yml add travis-ci and facade Mar 25, 2019
LICENSE add travis-ci and facade Mar 25, 2019
composer.json php 7.1.3+ Mar 25, 2019
phpunit.xml add travis-ci and facade Mar 25, 2019
readme.md update readme Mar 25, 2019

readme.md

Laravel Exception Notifier | A Laravel Exceptions Email Notification Package

Total Downloads Latest Stable Version Build Status StyleCI License: MIT

Table of contents:

About

Laravel exception notifier will send an email of the error along with the stack trace to the chosen recipients. This Package includes all necessary traits, views, configs, and Mailers for email notifications upon your applications exceptions. You can customize who send to, cc to, bcc to, enable/disable, and custom subject or default subject based on environment. Built for Laravel 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, and 5.8+.

Get the errors and fix them before the client even reports them, that's why this exists!

Requirements

Installation Instructions

  1. From your projects root folder in terminal run:

        composer require jeremykenedy/laravel-exception-notifier
    
  2. Register the package

  • Laravel 5.5 and up Uses package auto discovery feature, no need to edit the config/app.php file.

  • Laravel 5.4 and below Register the package with laravel in config/app.php under providers with the following:

       jeremykenedy\laravelexceptionnotifier\LaravelExceptionNotifier::class,
    
  1. Publish the packages view, mailer, and config files by running the following from your projects root folder:

        php artisan vendor:publish --tag=laravelexceptionnotifier
    
  2. In App\Exceptions\Handler.php include the following classes in the head:

    use App\Mail\ExceptionOccured;
    use Illuminate\Support\Facades\Log;
    use Mail;
    use Symfony\Component\Debug\ExceptionHandler as SymfonyExceptionHandler;
    use Symfony\Component\Debug\Exception\FlattenException;
  1. In App\Exceptions\Handler.php replace the report() method with:

        /**
         * Report or log an exception.
         *
         * This is a great spot to send exceptions to Sentry, Bugsnag, etc.
         *
         * @param  \Exception  $exception
         * @return void
         */
        public function report(Exception $exception)
        {
    
            $enableEmailExceptions = config('exceptions.emailExceptionEnabled');
    
            if ($enableEmailExceptions === "") {
                $enableEmailExceptions = config('exceptions.emailExceptionEnabledDefault');
            }
    
            if ($enableEmailExceptions && $this->shouldReport($exception)) {
                $this->sendEmail($exception);
            }
    
            parent::report($exception);
        }
    
  2. In App\Exceptions\Handler.php add the method sendEmail():

        /**
         * Sends an email upon exception.
         *
         * @param  \Exception  $exception
         * @return void
         */
        public function sendEmail(Exception $exception)
        {
            try {
    
                $e = FlattenException::create($exception);
                $handler = new SymfonyExceptionHandler();
                $html = $handler->getHtml($e);
    
                Mail::send(new ExceptionOccured($html));
    
            } catch (Exception $exception) {
    
                Log::error($exception);
    
            }
        }
    
  3. Configure your email settings in the .env file.

  4. Add the following (optional) settings to your .env file and enter your settings:

    • Note: the defaults for these are located in config/exception.php
        EMAIL_EXCEPTION_ENABLED=false
        EMAIL_EXCEPTION_FROM='email@email.com'
        EMAIL_EXCEPTION_TO='email1@gmail.com, email2@gmail.com'
        EMAIL_EXCEPTION_CC=''
        EMAIL_EXCEPTION_BCC=''
        EMAIL_EXCEPTION_SUBJECT=''
    

Screenshots

Email Notification

File Tree

└── laravel-exception-notifier
    ├── .gitignore
    ├── LICENSE
    ├── composer.json
    ├── readme.md
    └── src
        ├── .env.example
        ├── App
        │   ├── Mail
        │   │   └── ExceptionOccured.php
        │   └── Traits
        │       └── ExceptionNotificationHandlerTrait.php
        ├── LaravelExceptionNotifier.php
        ├── config
        │   └── exceptions.php
        └── resources
            └── views
                └── emails
                    └── exception.blade.php
  • Tree command can be installed using brew: brew install tree
  • File tree generated using command tree -a -I '.git|node_modules|vendor|storage|tests'

License

Laravel-Exception-Notifier | A Laravel Exceptions Email Notification Package is open-sourced software licensed under the MIT license

You can’t perform that action at this time.