Skocz do zawartości
Rysiu512

Dużo maili... Uff... dużo różnych wiadomości (szablonów) jak to ogarnąć?

Polecane posty

Mam problem. Piszę w PHP kawałek systemu.

Problem w tym, że wysyła on w wielu miejscach różne maile.

 

Aktualnie to ogarniam. Ale co jeżeli będę miał 100 różnych wiadomości z opcją wysyłki?

 

Robiłem to tak, że treść wiadomości wklejałem bezpośrednio do kodu PHP i tam ewentualnie jego edytowałem (dodawałem do HTML zmienne itp.).

 

Rozwiązanie jednak mało eleganckie i krytycznie mało funkcjonalne.

 

Szukam solucji jak można to zrobić dobrze.

 

Wpadłem na coś następującego.

 

Mamy zbiór plików .txt z "szablonami" emaili. Przykładowo treść weryfikacja_konta.txt:

Witaj [IMIE], Odnotowaliśmy dnia [DATA_PROŚBY] prośbę o weryfikację konta. Proszę kliknij w link:http://mojastronka.pl/weryfikacja.php?hash=[HASH]

Procedura wygląda następująco, że wczytuję w PHP treść tego pliczku txt.

Następnie podmieniam wszystkie zmienne [XXX] na odpowiednie stringi.

 

Dzięki temu mam pewne pole manewru i mogę w ciągu chwili wejść i podmienić treść w txt i cieszyć się nową treścią bez dłubania w PHP (nie wiadomo ilu miejscach).

 

Można to zrobić jakoś jeszcze lepiej?

Pewnie można... Proszę o sugestie :)

Edytowano przez Rysiu512 (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@Aktualnie to ogarniam. Ale co jeżeli będę miał 100 różnych wiadomości z opcją wysyłki?

Tworzysz layout bazowy i w treści podstawiasz przygotowane do typu wysyłki szablony, które możesz mieć w pliku lub w bazie.

 

W kodzie szablony dajsze wstawki np {IMIE} {NAZWOSKO} i podmieniasz ze zmienne po przez funkcje PHP
http://php.net/manual/en/function.str-replace.php

Lub opierasz na szablonach: Twig, blade na biede smarty lub najlepiej w czystym PHP

 

 

 


Samo wysyłani e-maili zaimplementował bym jako osobną usługę opartą o kolejkę w bazie danych lub Redis'ie ekstremalnie w RabbicieMQ.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dzięki! :)


Tak się właśnie zastanawiałem wcześniej dlaczego wspomniałeś o kolejce....

Aktualnie wysyłam maile "bieżąco" w danych skryptach.

 

Przed chwilą jednak padł mi serwer pocztowy i chyba zrozumiałem.

W przypadku gdy jest kolejka to dane maile prędzej czy później dojdą do odbiorcy (najwyżej jak wystąpi problem z wysyłką to kolejka się zatrzyma ale przecież po naprawieniu błędu ruszy...)

 

Jeżeli wysyłam tak jak robię to teraz to co najwyżej mogę wyświetlić info o błędzie :angry: - nie mam jednak kolejki więc nie ma możliwości załadowania wiadomości i jej późniejszego wysłania.

 

Mam rację? Są jeszcze jakieś ku kolejce przesłanki?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×