Jak dostosować szablony e -mail Laravel 5 /6

Jak dostosować szablony e -mail Laravel 5 /6

W porządku, więc wpadłem na ten numer konfiguracji szablonu e -mail dla mojego Laravel 5.4 App. To był e -mail „powitalny”, używając domyślnego szablonu Laravel. Wyzwanie polegało na zmianie nagłówka i stopki szablonu.

Wszyscy staramy się przeczytać dokumentację tak szybko, jak to możliwe, a jeśli to nie zadziała, po pełnych 3 minutach przeczytania dokumentacji przełączamy się na StackoverFlow, Laracasts lub inne forum, oczekując „kopiowania i wklej” gotowego kodu.

Kontynuować…

Rzeczy są łatwe, jeśli chcesz po prostu zmienić wiadomość tekstową i masz wiele przykładów, jak to zrobić, korzystając z komponentów pocztowych. Nie znalazłem jednak żadnych odpowiedzi na temat zmiany domyślnego nagłówka i stopki.

składniki

Laravel 5.4 Wprowadzone komponenty wysyłkowe. Możesz o tym przeczytać tutaj.



$ slot

Byłby to jeden komponent alarmowy, który jest w zasadzie szablonem ostrza. Wtedy $ slot byłby zmienną/miejscem, aby upuścić treść z innego szablonu/komponentu.

@Component („alert”)
Ups! Coś poszło nie tak!
@endComponent

Tak. To by renderował


Ups! Coś poszło nie tak!

PUBLITH VENDOR PUBLISH

Początkowo Laravel użyje swoich komponentów ukrytych w rdzeniu ram, które możesz wyeksportować, wykonując

PHP Artisan Sprzedawca: Publikuj-Tag = Laravel-Mail

Utworzy foldery pocztowe i Markdown w folderze zasobów/widoku/dostawcy. Wewnątrz znajdziesz komponent taki jak układ lub nagłówek itp.

Tworzenie powiadomienia

To, co chcesz zrobić, to albo utworzyć powiadomienie, wydarzenie lub klasę pocztową, aby zwolnić e -mail, gdy coś się wydarzy.

Zdecydowałem się na powiadomienie. Podczas tworzenia dowolnego powiadomienia (możesz przeczytać więcej o tym, jak stworzyć powiadomienie za pośrednictwem rzemieślniczego), otrzymasz taką klasę:

przestrzeń nazw app \ powiadomienia;
Użyj Illuminate \ Bus \ Queueble;
Użyj iluminate \ powiadomienia \ powiadomienie;
Użyj Illuminate \ Contracts \ Queue \ shourqueue;
Użyj iluminate \ powiadomienia \ wiadomości \ MailMessage;
User Register Class rozszerza powiadomienie

używać queue;
/**
* Nieudokumentowana zmienna klasowa
*
* String @VAR
**/
użytkownik publiczny $;
/**
* Utwórz nową instancję powiadomienia.
*
* @return void
*/
Funkcja publiczna __Construct ($ użytkownik)

$ this-> user = $ user;

/**
* Uzyskaj kanały dostawy powiadomienia.
*
* @param mixed $ podlegające powiadomieniu
* @return Array
*/
Funkcja publiczna przez ($ Notilifable)

return [„poczta”];

/**
* Uzyskaj reprezentację poczty powiadomienia.
*
* @param mixed $ podlegające powiadomieniu
* @return \ Illuminate \ powiadomienia \ wiadomości \ Mailmessage
*/
Funkcja publiczna Tomail ($ Notilifabe)

zwrot (nowy Mailmessage)
-> z („[email protected] ', „admin”)
-> Temat („Witamy w portalu”)
-> Markdown („Mail.Witamy.indeks ', [' user '=> $ this-> użytkownik]);

/**
* Zdobądź reprezentację tablicy powiadomienia.
*
* @param mixed $ podlegające powiadomieniu
* @return Array
*/
Funkcja publiczna toaRray ($ Notilifabe)

powrót [
//
];

Tutaj zwróć uwagę na metodę Tomaila, a także konstruktor klasy, ponieważ przekazamy do niego obiekt. Zauważ też, że używamy

-> Markdown („niektóre.ostrze.php ');

Następnym krokiem jest popchnięcie tego powiadomienia do pracy. Gdzieś w swoim rejestrze koncert możesz to nazwać (nie wchodząc w sposób, w jaki go wykonasz, synchronizuj lub w kolejce…). Nie zapomnij dołączyć przestrzeni nazw powiadomienia u góry.

$ user = User :: Utwórz ([
„Nazwa” => $ data ['nazwa'],
„e -mail” => $ data ['e -mail'],
„LastName” => $ data ['lastName'],
„hasło” => bcrypt ($ data ['hasło']),
]);
$ user-> powiadom (new Userregistered ($ user));

Dlaczego idę tak głęboko? Cóż, ponieważ chcę również pokazać, jak przekazać swoje dane do szablonu e -mail.

Następnie możesz przejść do Zasoby/wyświetlenia/poczta/powital/indeks.ostrze.php (Może to być dowolny folder i nazwa pliku) i wklejanie tego:

@Component („Mail :: Layout”)
-- Nagłówek --
@slot („nagłówek”)
@Component („Mail :: nagłówek”, ['url' => config ('app.url ')])
Tytuł nagłówka
@endComponent
@ENDSLOT
-- Ciało --
To jest nasza główna wiadomość $ user
-subcopy-
@isset ($ subcopy)
@slot („subcopy”)
@Component („Mail :: Subcopy”)
$ subcopy
@endComponent
@ENDSLOT
@endisset
-stopa-
@slot („stopka”)
@Component („poczta :: stop”)
© date ('y') config ('app (aplikacja.nazwa') . Super stopka!
@endComponent
@ENDSLOT
@endComponent

Możesz teraz łatwo dodać dowolny obraz do nagłówka lub zmienić link wewnątrz stopki itp.

Mam nadzieję że to pomoże.

Obserwuj mnie na Twitterze
Dodaj mnie na LinkedIn