Есть много похожих вопросов, ближайшая Laravel 6 очередь прослушивателей событий, не имеющая доступа к .
php: 7,2
Laravel: 5,7
- Контроллер:
public function send_email(Request $request) {
$data = $request->json()->all();
//data: {"to":"email@to.me","msg":"test message","subject":"test subject"}
Mail::to($data['to'])->send(new MailFromNewinc( $data['subject'], $data['msg']));
return Response::json(array(
'error' => false,
'status_code' => 200
));
}
MailFromNewin c Отправляемый по почте:
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class MailFromNewinc extends Mailable implements ShouldQueue
{
use Queueable, SerializesModels;
public $msg;
public $header;
public function __construct($header, $msg)
{
$this->msg = $msg;
$this->header = $header;
}
public function build()
{
return $this->subject($this->header)
->view('emails.sendmail_from_newinc');
}
}
sendmail_from_newin c просмотр:
<body>
{{ $header??'no header' }}
<br>
{{ $msg??'no content' }}
</body>
</html>
Результат:
субъект теста
без содержимого
Если я удаляю ShouldQueue
Инструменты из почтового сообщения $ msg доступны, но если я уйду, $ msg будет нулевым. Неважно, если я установлю в компоновщике, заголовок ->with('msg', $this->msg);
$ доступен обоим путям.
ОБНОВЛЕНИЕ
Если я изменю имя переменной $header
на что-то другое ( везде в почтовом ящике и в представлении) потом тоже перестает работать. Это зарезервированное слово?
Если я уйду, но поменяю тему:
return $this->subject('custom subject')->view('emails.sendmail_from_newinc');
электронное письмо все равно будет содержать тему, определенную в $header
, а не «пользовательскую тему». : O
Я уже пытаюсь обработать почту в контроллере:
return (new MailFromNewinc($data['subject'], $data['msg']))->render();
, и она показывает все по порядку, все переменные на месте.
Я не знаю, как все испортилось, у меня есть другой почтовый ящик с почти такими же настройками, но с одним заголовком $ и одной пользовательской моделью в функции __construct, и все доступно в ее представлении, как и должно будет.