我正在尝试通过Laravel发送一封包含多个收件人的电子邮件,但根据收件人的查看数据会有所不同。
例如,我需要显示接收电子邮件的用户的名字,而不是全部。
这是代码:
protected $hints = [
['game_hint_2', 'game_hint_3'],
['game_hint_4'],
['game_hint_5', 'game_hint_6'],
['game_hint_7', 'game_hint_8'],
['game_hint_9', 'game_hint_10']
];
$users = $this->users->query()->whereConfirmed(true)->get();
$emails = $users->pluck('email');
Mail::bcc($users->pluck('email'))->send(
new GameHintsEmail($hints[$dayIndex])
);
如何为每个收件人指定查看数据?
基本上,对于每个收件人,都需要根据用户的电子邮件填充视图中的替换标签,以实现类似于Hello *firstname*!
这是可邮寄的:
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($gameHints)
{
$this->gameHints = $gameHints;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
$data = $this->__buildViewData();
return $this
->view('emails.hints.game_hint')
->text('emails.hints.game_hint_plain')
->with($data)
->subject($data['subject']);
}
protected function __buildViewData()
{
$data = [];
$data['subject'] = "Game Hints! Name 2018 Competition";
$data['hints'] = $this->gameHints;
if ($this->bcc && !empty($this->bcc)) {
$data['userEmail'] = $this->getUserEmail();
}
return $data;
}
protected function getUserEmail()
{
if ($this->to && !empty($this->to)) {
return $this->bcc[0]['address'];
}
}
getUserEmail
仅允许我获取第一个收件人数据,但这不是我想要的。
目标是不要使用多个Mail
调用,而只能使用一个。
有可能吗?