Я пытаюсь отправить через 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
, а только один.
Возможно ли это вообще?