Laravel使用queue()在服务器上运行时发送邮件

时间:2017-12-28 11:12:08

标签: php laravel email laravel-mail

我尝试使用Laravel队列作业发送邮件,我的网站在hostmonster网络服务器上,但是当我解除php artisan queue:work时它没有发送邮件,它清除了Job表但没有收到邮件到我的电子邮件地址。 / p>

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

    //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
  3. 但是现在如果我使用xyz@yahoo.com / xyz@gmail.com然后在这种情况下队列不工作 - 作业表也删除条目作为邮件发送但bingo .. !!邮件寄的地方我不知道。

    cron也发送了与队列简单mail()函数相同的问题,那里没有Mail::send()工作..!

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

.env文件设置MAIL_DRIVER=sendmail

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