簡體   English   中英

laravel 5.4 Mailable 實現 ShouldQueue 不發送電子郵件

[英]laravel 5.4 Mailable implements ShouldQueue don't sent email

這項工作正常,電子郵件成功發送到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 文件中沒有打印錯誤。 我不知道該怎么辦。

好吧,經過多次測試,這就是我解決問題的方法。

不要使用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 好吧,我不在乎。 好用!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM