laravel-email-confirmation icon indicating copy to clipboard operation
laravel-email-confirmation copied to clipboard

Issue when running the email job

Open sburkett opened this issue 6 years ago • 1 comments

Whenever I run php artisan queue:listen the mail job keeps failing repeatedly with the error below - any ideas? Running Laravel 5.5, followed the instructions carefully.

[2018-04-28 11:04:55] local.ERROR: Method __PHP_Incomplete_Class::handle() does not exist {"exception":"[object] (ReflectionException(code: 0): Method __PHP_Incomplete_Class::handle() does n ot exist at /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:135) [stacktrace] #0 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(135): ReflectionMethod->__construct(Object(__PHP_Incomplete_Class), 'handle') #1 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(115): Illuminate\\Container\\BoundMethod::getCallReflector(Array) #2 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(29): Illuminate\\Container\\BoundMethod::getMethodDependencies(Object(Illuminate\\Founda tion\\Application), Array, Array) #3 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(87): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}() #4 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(31): Illuminate\\Container\\BoundMethod::callBoundMethod(Object(Illuminate\\Foundation\\ Application), Array, Object(Closure)) #5 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Container/Container.php(549): Illuminate\\Container\\BoundMethod::call(Object(Illuminate\\Foundation\\Application) , Array, Array, NULL) #6 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(94): Illuminate\\Container\\Container->call(Array) #7 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(114): Illuminate\\Bus\\Dispatcher->Illuminate\\Bus\\{closure}(Object(__PHP_Incomplete_Class) ) #8 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(__PHP_Incomplet e_Class)) #9 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(98): Illuminate\\Pipeline\\Pipeline->then(Object(Closure)) #10 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(49): Illuminate\\Bus\\Dispatcher->dispatchNow(Object(__PHP_Incomplete_Class), false) #11 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php(76): Illuminate\\Queue\\CallQueuedHandler->call(Object(Illuminate\\Queue\\Jobs\\BeanstalkdJob) , Array) #12 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(319): Illuminate\\Queue\\Jobs\\Job->fire() #13 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(269): Illuminate\\Queue\\Worker->process('beanstalkd', Object(Illuminate\\Queue\\Jobs\\Beanstalk dJob), Object(Illuminate\\Queue\\WorkerOptions)) #14 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(226): Illuminate\\Queue\\Worker->runJob(Object(Illuminate\\Queue\\Jobs\\BeanstalkdJob), 'beansta lkd', Object(Illuminate\\Queue\\WorkerOptions)) #15 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(101): Illuminate\\Queue\\Worker->runNextJob('beanstalkd', 'default', Object(Illumin ate\\Queue\\WorkerOptions)) #16 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(85): Illuminate\\Queue\\Console\\WorkCommand->runWorker('beanstalkd', 'default') #17 [internal function]: Illuminate\\Queue\\Console\\WorkCommand->handle() #18 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(29): call_user_func_array(Array, Array) #19 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(87): Illuminate\\Container\\BoundMethod::Illuminate\\Container\\{closure}() #20 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(31): Illuminate\\Container\\BoundMethod::callBoundMethod(Object(Illuminate\\Foundation\ \Application), Array, Object(Closure)) #21 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Container/Container.php(549): Illuminate\\Container\\BoundMethod::call(Object(Illuminate\\Foundation\\Application ), Array, Array, NULL) #22 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Console/Command.php(180): Illuminate\\Container\\Container->call(Array) #23 /var/www/portal.testsite.com/vendor/symfony/console/Command/Command.php(252): Illuminate\\Console\\Command->execute(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Illu minate\\Console\\OutputStyle)) #24 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Console/Command.php(167): Symfony\\Component\\Console\\Command\\Command->run(Object(Symfony\\Component\\Console\\ Input\\ArgvInput), Object(Illuminate\\Console\\OutputStyle)) #25 /var/www/portal.testsite.com/vendor/symfony/console/Application.php(946): Illuminate\\Console\\Command->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Com ponent\\Console\\Output\\ConsoleOutput)) #26 /var/www/portal.testsite.com/vendor/symfony/console/Application.php(248): Symfony\\Component\\Console\\Application->doRunCommand(Object(Illuminate\\Queue\\Console\\WorkCommand), Obje ct(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput)) #27 /var/www/portal.testsite.com/vendor/symfony/console/Application.php(148): Symfony\\Component\\Console\\Application->doRun(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Objec t(Symfony\\Component\\Console\\Output\\ConsoleOutput)) #28 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Console/Application.php(82): Symfony\\Component\\Console\\Application->run(Object(Symfony\\Component\\Console\\In put\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput)) #29 /var/www/portal.testsite.com/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(125): Illuminate\\Console\\Application->run(Object(Symfony\\Component\\Console\\Inp ut\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput)) #30 /var/www/portal.testsite.com/artisan(37): Illuminate\\Foundation\\Console\\Kernel->handle(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\O utput\\ConsoleOutput)) #31 {main} "}

sburkett avatar Apr 28 '18 11:04 sburkett

If anybody needs a quickfix for this issue, just implement the ShouldQueue contract

app/Notifications/ConfirmEmail.php

<?php

namespace App\Notifications;

use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;

class ConfirmEmail extends Notification implements ShouldQueue
{
    use Queueable;

    public $user;

    /**
     * Create a new job instance.
     *
     * @param  \App\User  $user
     * @return void
     */
    public function __construct(\App\User $user)
    {
        $this->user = $user;
    }

    /**
     * Execute the job.
     *
     */
    public function handle()
    {
      $this->toMail($this->user);
    }

    /**
     * Get the notification's delivery channels.
     *
     * @return array
     */
    public function via()
    {
        return ['mail'];
    }

    /**
     * Get the mail representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return \Illuminate\Notifications\Messages\MailMessage
     */
    public function toMail($notifiable)
    {
        return (new MailMessage)
            ->subject(__('confirmation::confirmation.email-title'))
            ->line(__('confirmation::confirmation.email-title'))
            ->line(__('confirmation::confirmation.email-intro'))
            ->action(__('confirmation::confirmation.email-button'),
                url("confirmation/$notifiable->id/$notifiable->confirmation_code"));
    }
}

`

felipesilvame avatar Oct 14 '18 05:10 felipesilvame