laravel 5.4 Mailable实现了ShouldQueue没有发送电子邮件

时间:2017-12-07 02:34:00

标签: php email laravel-5.4

此工作正常,电子邮件已成功发送至log(MAIL_DRIVER=log)mailtrap.io(MAIL_DRIVER=smtp)

            class VerificationNewAccount extends Mailable
            {
                use Queueable, SerializesModels;
                public function __construct()
                {
                }
                public function build()
                {
                    return $this->from('noreply@example.com')
                        ->view('email.verification-request');
                }
            }
            // in controller
            Mail::to('test@gmail.com')->send(new VerificationNewAccount());

当我实施ShouldQueue时,电子邮件会在log(MAIL_DRIVER=log)打印,但当我尝试发送到mailtrap.io(MAIL_DRIVER=smtp)时,电子邮件永远不会被发送

            // running the queue in terminal
            php artisan queue:work --queue

然后该类实现了ShouldQueue

            class VerificationNewAccount extends Mailable implements ShouldQueue
            {
                use Queueable, SerializesModels;
                public function __construct()
                {
                }
                public function build()
                {
                    return $this->from('noreply@example.com')
                        ->view('email.verification-request');
                }
            }
            // in controller
            Mail::to('test@gmail.com')->send(new VerificationNewAccount());

laravel.log文件中没有打印错误。我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

嗯,经过多次测试,这就是我解决问题的方法。

不要使用ShouldQueue

            class VerificationNewAccount extends Mailable
            {
                use Queueable, SerializesModels;
                public function __construct()
                {
                }
                public function build()
                {
                    return $this->from('noreply@example.com')
                        ->view('email.verification-request');
                }
            }

而是使用基础->queue

            Mail::to('test@gmail.com')->queue(new VerificationNewAccount($ran));

现在电子邮件已发送到gmail

奇怪的是,现在电子邮件没有打印在log中。 好吧,我不在乎。它开始了!