4

我试图使用 Laravel 队列作业发送邮件,并且我的网站在 hostmonster Web 服务器上,但是当我触发时它没有发送邮件php artisan queue:work,它清除了作业表,但没有收到邮件到我的电子邮件地址。

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

    //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()(绕过/忽略队列)
  2. 也使用queue()发送到相同的托管电子邮件(如info@myhost.com

但是现在如果我使用xyz@yahoo.com/xyz@gmail.com那么在这种情况下队列不起作用 - 作业表也会删除条目作为发送的邮件但宾果游戏..!! 邮件发到哪里我不知道。

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

4

2 回答 2

4

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

.env文件设置MAIL_DRIVER=sendmail

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

于 2018-01-13T10:59:09.313 回答
3
  1. 您需要执行queue worker php artisan queue:work
  2. 更改QUEUE_DRIVER=syncQUEUE_DRIVER=redisQUEUE_DRIVER=database
于 2017-12-28T12:05:05.717 回答