Konfiguracja zmiennych MAIL w Laravelu
Laravel odczytuje ustawienia poczty z pliku środowiskowego aplikacji. Kilka zmiennych MAIL wystarczy, by cała poczta z Państwa aplikacji — rejestracje, resety haseł, powiadomienia z kolejki — wychodziła przez 2Mail, bez zmiany ani jednej linii kodu.
Co będzie potrzebne
- nazwa serwera z Państwa konta 2mail
- login SMTP z hasłem, utworzony w panelu dla tej aplikacji; dla środowiska testowego i produkcyjnego warto użyć osobnych loginów
- adres nadawcy w domenie, która jest na koncie domeną wysyłkową
Krok 1: uzupełnienie zmiennych
Proszę otworzyć plik środowiskowy aplikacji i ustawić mailer na SMTP. Po uzupełnieniu wygląda to tak:
MAIL_MAILER=smtp, MAIL_HOST=nazwa serwera z konta 2mail, MAIL_PORT=587, MAIL_USERNAME=Państwa login SMTP, MAIL_PASSWORD=Państwa hasło, MAIL_ENCRYPTION=tls, MAIL_FROM_ADDRESS=adres w domenie wysyłkowej, MAIL_FROM_NAME=nazwa Państwa firmy.
Wartości ze spacjami, takie jak nazwa nadawcy, należy ująć w cudzysłów. Szyfrowanie proszę pozostawić na tls; to ustawienie STARTTLS, które pasuje do portu 587.
Krok 2: odświeżenie cache konfiguracji
Jeśli środowisko produkcyjne działa z konfiguracją zapisaną w cache, Laravel nie odczytuje ponownie pliku środowiskowego. Po każdej zmianie należy odświeżyć cache konfiguracji — inaczej testują Państwo ze starymi wartościami i szukają błędu, którego nie ma.
Krok 3: test
Proszę wysłać prostą wiadomość, na przykład z interaktywnej konsoli Laravela albo przez istniejące powiadomienie, na adres spoza swojej domeny. Następnie należy sprawdzić dziennik dostarczeń w panelu 2Mail: widać tam, czy wiadomość do nas dotarła i co odpowiedział serwer odbiorcy.
Krok 4: kolejka
Jeśli wysyłają Państwo pocztę przez kolejkę, właściwa wysyłka odbywa się w workerze, a nie w żądaniu HTTP. Po zmianie zmiennych proszę zrestartować workery; w przeciwnym razie działają dalej ze starymi ustawieniami. Przy błędzie w workerze wiadomość pojawia się w tabeli nieudanych zadań wraz z komunikatem naszego relaya.
Najczęstsze błędy
- Nie udało się nawiązać połączenia — w nazwie serwera jest literówka albo hosting blokuje port 587. Proszę poprosić dostawcę hostingu o odblokowanie tego portu.
- Nadawca odrzucony — adres nadawcy w pojedynczej klasie mailable nadpisuje adres globalny i używa innej domeny.
- Działa lokalnie, ale nie na produkcji — cache konfiguracji nie został odświeżony albo produkcja używa innego pliku środowiskowego ze starymi wartościami.
Więcej o tej integracji na stronie SMTP dla Laravela. Jeśli wolą Państwo wysyłać bez SMTP i otrzymywać status dla każdej wiadomości, warto przyjrzeć się API e-mail.
Coś nie działa?
Prosimy przesłać nam przez stronę kontaktową komunikat z pliku logów lub z tabeli nieudanych zadań. Jest tam dosłownie zapisana odpowiedź naszego relaya.
Jeśli u Ciebie przebiega to inaczej niż opisano powyżej albo utknąłeś, skontaktuj się z nami, mając pod ręką nazwę domeny lub numer klienta, a przyjrzymy się temu razem.
Skontaktuj się z pomocą techniczną