Laravel 使用 queue() 发送邮件在服务器上不工作

Laravel send mail using queue() not working on server

我尝试使用 Laravel 队列作业发送邮件,我的站点位于 hostmonster 网络服务器上,但是当我启动 php artisan queue:work 时它没有发送邮件,它清除了作业 table但我的电子邮件地址没有收到邮件。

这是我的排队和发送邮件功能的代码:

    //It is working
    $to = '****@g***l.com';
    \Mail::to($to)->send(new ContactUsMail($contactUsId));

    //It is not working: on same host email working not work with hotmail - gmail - other
    $to = '****@g***l.com';
    \Mail::to($to)->queue(new ContactUsMail($contactUsId));

2 个案例的邮件发送工作正常:

  1. 如果我使用 send() 方法发送邮件(bypass/ignore 队列)
  2. 也使用 queue() 发送到相同的托管电子邮件(如 info@myhost.com

但现在如果我使用 xyz@yahoo.com/xyz@gmail.com 那么在这种情况下队列将无法工作 - 工作 table 也会删除条目作为邮件发送但宾果..!!邮件寄到哪里我不知道。

cron 邮件也存在与队列简单 mail() 功能相同的问题 Mail::send() 在那里不工作..!

  1. 您需要执行 queue worker php artisan queue:work.
  2. QUEUE_DRIVER=sync更改为QUEUE_DRIVER=redisQUEUE_DRIVER=database

经过多次尝试,我发现我的服务器的解决方案低于设置工作正常:

.env 文件设置 MAIL_DRIVER=sendmail.

config/mail.php 文件 'sendmail' => '/usr/sbin/sendmail -t'-bs 替换为 -t