Listen to the `Illuminate\Mail\Events\MessageSending` event, and perform logic when needed.
namespace App\Providers;
use Illuminate\Mail\Events\MessageSending;
use Illuminate\Contracts\Events\Dispatcher as DispatcherContract;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
class EventServiceProvider extends ServiceProvider
{
/**
* The event listener mappings for the application.
*
* @var array
*/
protected $listen = [
//
];
/**
* Register any other events for your application.
*
* @param \Illuminate\Contracts\Events\Dispatcher $events
* @return void
*/
public function boot(DispatcherContract $events)
{
parent::boot($events);
$events->listen(MessageSending::class, function ($message) {
die('Cancelled sending email.');
// Or, maybe throw a catchable exception:
throw new MailCancelled();
});
}
}