Laravel 10 extend & customize default email template 2023
От версия 8 нататък, Laravel въвежда по-структуриран начин за изпращане на имейли чрез така наречените Mailables. Вместо директно да подаваме view (обикновен Blade файл), вече се използва нов обект – Content. Той ни позволява да опишем по-прецизно съдържанието на имейла.
Какво се променя?
Преди: Подаваме
view, който съдържа HTML кода на имейла.Сега: Използваме обект
Content, който приема параметри катоmarkdown,viewиwith.
Важно: Въпреки че може да изглежда логично да използваме view и вътре в него да наследим Laravel темплейт с <x-mail::layout>, това няма да проработи правилно. За да се възползваме от всички вградени компоненти на Laravel, трябва да използваме markdown, а не view.
Стъпка по стъпка: Как да го направим правилно
1. Публикуване на шаблоните на Laravel
Laravel идва с готови Markdown шаблони, които можем да променяме. За да ги направим достъпни в проекта ни:
php artisan vendor:publish --tag=laravel-mailСлед това ще се създадат файлове в resources/views/vendor/mail/, които можем да редактираме.
2. Използване на markdown в Mailable
Когато дефинираме съдържанието на имейла, трябва да използваме markdown: вместо view:.
Пример:
public function content(): Content
{
return new Content(
markdown: 'mail.orders.shipped', // "markdown:" instad of "view:"
with: [
'url' => $this->orderUrl,
],
);
}Този подход позволява да използваме готови компоненти като @component('mail::button'), @slot и @markdown, както и вграденото оформление на Laravel имейли.
3. Персонализиране на дизайна
3.1 Промяна на CSS дизайна:
resources/views/vendor/mail/html/themes/default.css3.2 Промяна на HTML шаблоните:
resources/views/vendor/mail/html/
4. Създаване на нови имейли с markdown
Laravel ни позволява да създадем нов имейл с markdown оформление направо от конзолата. Това ще създаде както класа, така и Blade файла автоматично:
php artisan make:mail OrderShipped --markdown=mail.orders.shipped⚠️ ВАЖНО: Без табулации!
Когато ползвате markdown за Blade файловете, избягвайте използването на табулация (indentation с таб клавиш), защото това ще развали форматирането на имейла, грозно, но работи.
Ако следвате тези стъпки, ще можете да създавате красиви, структурирани и лесни за поддръжка имейли в Laravel, които работят добре на всички пощи и устройства.
Референции и линк към документацията: https://laravel.com/docs/12.x/mail#markdown-mailables
Кои сме ние и защо да изберете нас?
Ние сме Webgods.bg, базирани сме в гр. Стара Загора и създаваме персонализирани проекти, създадени единствено и специално за вас и вашите нужди. Проекти, които да ви представляват пред вашите доверени партньори и да смажат конкуренцията. Ние сме надежден партньор, на който може да разчитате да бъде до вас в изработката на уеб сайт или изработката на онлайн магазин. Готови сме да изградим единствен по рода си уеб сайт или онлайн магазин за твоят бизнес, продукт или услуга. Заедно ще изградим едно дългосрочно партньорство и ще се погрижим за вашият дигитален успех!