Laravel 5.3 представляет новую службу под названием notifications, позволяя создавать письма (среди других уведомлений) с помощью простого плавного синтаксиса:
return (new MailMessage)
->greeting('Hello!')
->line('One of your invoices has been paid!')
->action('View Invoice', $url)
->line('Thank you for using our application!');
Что такое красноречивый подход к добавлению изображений в уведомления по электронной почте? Я уже опубликовал файлы поставщиков, чтобы изменить базовый шаблон.
Мои мысли в настоящее время стоят на:
- Расширьте
Illuminate\Notifications\Messages\SimpleMessage
как новый локальный класс по строкамSimpleMediaMessage
с несколькими дополнительными методами (пример:->image(src, url, alt)
) - Измените базовый шаблон (или создайте один из них для
SimpleMediaMessage
, который будет проходить через массив мультимедиа, созданный с помощью->image
- Наконец, зарегистрируйте настраиваемый канал, чтобы уведомления могли отправлять уведомления с изображениями.
Это кажется довольно тяжелым для чего-то простого, как изображения в электронной почте. Я что-то упускаю? Есть ли лучший подход?
Отредактировано для ясности
Когда я обращаюсь к изображениям, я имею в виду изображения баннера и трейла, которые видны в самом сообщении (а не как отдельное приложение).
Прилагаемое изображение показывает a) красным, что может быть достигнуто в настоящее время, и b) в фиолетовом, что я ищу.
Второе редактирование
Перечитав ответы, опубликованные до сих пор, особенно @Erics, я вижу, что с очень простой модификацией шаблона вы действительно можете сделать следующее:
->line("<img src='foo.example/bar.jpg' />")
Шаблон необходимо изменить, чтобы разрешить небезопасную разметку:
// Note this is in two spots - intro + outro
{{ $line }} --> becomes --> {!! $line !!}
Недостатки этого метода:
- Возможно, открыв проблему безопасности, вся причина использования {{}} через {!!!!}
-
Изображение не может использовать встроенные стили, если вы не делаете его вне шаблона электронной почты, например:
- > line ( "< img style = 'max-width: 570px;/* все остальные нежелательные файлы, чтобы изображения выглядели нормально в электронной почте */' src= 'foo.example.bar.jpg'/" > " )