问题描述
我无法在Laravel中发送多个作业。
有时它可以正常工作。
有时我在cannot send message without a sender address
表中收到此消息failed_job
,只有1条有效。
有时都无法正常工作。
那是在我的本地,但是在服务器上根本不起作用。
我正在尝试清除缓存,配置等所有内容,但根本无法正常工作。
我不认为这是因为我在.env
上进行的设置并不总是导致错误。
有时候会出错,有时候会起作用。
最常见的错误是1个正常工作,而1个没有正常工作。
它只运行1个作业,而1个作业将在failed_job
表中引发失败
职位
class SendContactContentEmail implements ShouldQueue
{
use Batchable,Dispatchable,InteractsWithQueue,Queueable,SerializesModels;
public $data;
public $emails;
public $tries = 5;
/**
* Create a new job instance.
*
* @param array $_data
*/
public function __construct(
$_data
)
{
$this->data = $_data;
$this->emails = config('email.admin');
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$content = new ContactContentEmail($this->data);
if (!empty($this->emails)){
foreach ($this->emails as $email){
Mail::to($email)->send($content);
}
}
}
}
class SendContactEmail implements ShouldQueue
{
use Batchable,SerializesModels;
protected $email_address;
public $tries = 5;
/**
* Create a new job instance.
*
* @param string $_email_address
*/
public function __construct(
string $_email_address
)
{
$this->email_address = $_email_address;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$email = new ContactEmail();
Mail::to($this->email_address)->send($email);
}
}
邮件
class ContactContentEmail extends Mailable
{
use Queueable,SerializesModels;
protected $data;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($_data)
{
$this->data = $_data;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->view('contact.emails.contact_content')->with([
'data' => $this->data
]);
}
}
class ContactEmail extends Mailable
{
use Queueable,SerializesModels;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct()
{
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->view('contact.emails.contact');
}
}
控制器
public function send(ContactFormRequest $request){
$data = $request->validated();
dispatch(new SendContactContentEmail($data));
dispatch(new SendContactEmail($data['mail_address']));
}
配置电子邮件
return [
'admin' => [
'kuriyama' => '[email protected]','negishi' => '[email protected]',]
];
ENV
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=xxxxxx
MAIL_ENCRYPTION=tls
[email protected]
MAIL_FROM_NAME="${APP_NAME}"
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)