Rysiu512 0 Zgłoś post Napisano Sierpień 30, 2017 (edytowany) 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 Sierpień 30, 2017 przez Rysiu512 (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
systemy.internetowe 7 Zgłoś post Napisano Sierpień 30, 2017 @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 PHPhttp://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
Rysiu512 0 Zgłoś post Napisano Wrzesień 3, 2017 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 - 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