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 个案例的邮件发送工作正常:
- 如果我使用
send()
方法发送邮件(bypass/ignore 队列)
- 也使用
queue()
发送到相同的托管电子邮件(如 info@myhost.com
)
但现在如果我使用 xyz@yahoo.com
/xyz@gmail.com
那么在这种情况下队列将无法工作 - 工作 table 也会删除条目作为邮件发送但宾果..!!邮件寄到哪里我不知道。
cron 邮件也存在与队列简单 mail()
功能相同的问题 Mail::send()
在那里不工作..!
- 您需要执行 queue worker
php artisan queue:work
.
- 将
QUEUE_DRIVER=sync
更改为QUEUE_DRIVER=redis
或QUEUE_DRIVER=database
经过多次尝试,我发现我的服务器的解决方案低于设置工作正常:
.env
文件设置 MAIL_DRIVER=sendmail
.
config/mail.php
文件 'sendmail' => '/usr/sbin/sendmail -t'
将 -bs
替换为 -t
。
我尝试使用 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 个案例的邮件发送工作正常:
- 如果我使用
send()
方法发送邮件(bypass/ignore 队列) - 也使用
queue()
发送到相同的托管电子邮件(如info@myhost.com
)
但现在如果我使用 xyz@yahoo.com
/xyz@gmail.com
那么在这种情况下队列将无法工作 - 工作 table 也会删除条目作为邮件发送但宾果..!!邮件寄到哪里我不知道。
cron 邮件也存在与队列简单 mail()
功能相同的问题 Mail::send()
在那里不工作..!
- 您需要执行 queue worker
php artisan queue:work
. - 将
QUEUE_DRIVER=sync
更改为QUEUE_DRIVER=redis
或QUEUE_DRIVER=database
经过多次尝试,我发现我的服务器的解决方案低于设置工作正常:
.env
文件设置 MAIL_DRIVER=sendmail
.
config/mail.php
文件 'sendmail' => '/usr/sbin/sendmail -t'
将 -bs
替换为 -t
。