app/Console/Commands/SendTestEmail.php (31 lines of code) (raw):

<?php namespace App\Console\Commands; use Illuminate\Console\Command; use Illuminate\Support\Facades\Mail; class SendTestEmail extends Command { /** * The name and signature of the console command. * * @var string */ protected $signature = 'monica:test-email {--email= : The email address to send to}'; /** * The console command description. * * @var string */ protected $description = 'Send a test email to check that delivery is working'; /** * Execute the console command. * * @return int */ public function handle() { // retrieve the email from the option $email = $this->option('email'); // if no email was passed to the option, prompt the user to enter the email if (! $email) { $email = $this->ask('What email address should I send the test email to?'); } // Validate user provided email address if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) { $this->error('Invalid email address: "'.$email.'".'); return -1; } $this->info('Preparing and sending email to "'.$email.'"'); // immediately deliver the test email (bypassing the queue) Mail::raw( 'Hi '.$email.', you requested a test email from Monica.', function ($message) use ($email) { $message->to($email) ->subject('Monica email delivery test'); } ); $this->info('Email sent!'); return 0; } }