我正在尝试即时更改邮件驱动程序的username
和password
,如下所示。
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
config(['mail.username' => $this->username]);
config(['mail.password' => $this->password]);
Mail::to('me@me.com')->send(new OrderShipped());
}
动态配置设置位于队列作业中。对于队列处理,我使用的是 Laravel视野。但是,当我执行队列作业时。它仍在使用默认配置。不是我动态设置的配置。
注意:当我在配置设置后立即登录时,它显示了动态值。
如何动态设置配置,让Laravel地平线使用动态配置?
从Laravel版本7.x开始,您现在可以声明发送电子邮件时要使用的邮件驱动程序。您需要在app/config/mail.php
中正确配置所有连接和凭据。配置完成后,您可以通过mailer()
函数指定驱动程序的名称,如下所示:
Mail::mailer('postmark')
->to($request->user())
->send(new OrderShipped($order));
public function handle()
{
config([
'mail.username' => $this->username,
'mail.password' => $this->password,
]);
}
我就是这样做的。我认为重要的部分是您可以从外部获取将在作业类中使用的数据。
public function __construct($username,$password)
{
$this->username= $username;
$this->receiver = $password;
}