Laravel7 + Queue & Supervisor => 未发送邮件

Laravel7 + Queue & Supervisor => Mails are not sent

我正在使用队列异步发送订单确认,而不是让用户在前端等待支付完成。 这在使用 php artisan queue:work 时工作正常 - 一切都按应有的方式处理。

现在当我想让主管处理发送时,作业始终失败并出现以下异常:

[2020-08-17 19:54:12] production.ERROR: Cannot send message without a sender address {"exception":"[object] (Swift_TransportException(code: 0): Cannot send message without a sender address at /var/www/backend/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php:195)

这显然表明.env中没有配置发件人地址。但是,在 config/mail.php 中也是如此。我假设主管无法读取 .env 中的全局 MAIL_FROM_ADDRESS 或无权访问 .env 但我不确定如何实现。

这是我的主管配置(按照 Laravel Docs 中的说明):

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/backend/artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/backend/worker.log
stopwaitsecs=3600

我正在使用 QUEUE_CONNECTION=database。 服务器是 运行 nginx on ubuntu.

我也已经尝试让主管使用 user=root 但没有成功。
有没有人经历过类似的事情?

尝试设置一个目录:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
directory=/var/www/backend
command=php artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/backend/worker.log
stopwaitsecs=3600