Я храню почтовые шаблоны в БД. Некоторые из этих шаблонов содержат изображение в кодировке base64 (пользователь определяет их с помощью редактора summernote). Из-за того, что многие почтовые клиенты не поддерживают изображения с кодировкой base64, я хотел бы преобразовать их в необработанные данные изображений и встроенное вложение, используя $message->embedData()
. Я провел несколько тестов, и этот тип встроенных вложений корректно виден среди многих клиентов.
Я уже могу вырезать эти изображения из строки, полученной из БД, и заменить ее чем-то другим в моем почтовом классе. Я также могу конвертировать их и прикрепить (как обычный вложение) к сообщению для проверки. Но как их прикрепить встроенным? Единственный способ, которым я думаю, что это может быть сделано, это делать все это в пределах видимости, потому что переменная $message
доступна там, но это будет выглядеть не очень хорошо.
У кого-нибудь есть мысли?
Мой Шаблон лезвия выглядит следующим образом (mailTemplate.blade. php):
<html>
<body>
{!! $body !!} {{-- string directly from DB --}}
</body>
</html>
, контроллер:
public function sendMail(Notification $notification)
{
\Mail::to($email)
->send(new NotificationMail($notification));
}
, отправляемый по почте:
public function __construct(Notification $notification)
{
$this->body = $notification->body;
$this->subject = $notification->subject;
}
public function build()
{
return $this
->from('do-not-reply@example.com')
->subject($this->subject)
->view('mails.mailTemplate');
}