SMTP dla TYPO3 — wiadomości z Państwa strony, które docierają
TYPO3 wysyła pocztę przez transport określony w ustawieniach instalacji. Standardowo jest to lokalna funkcja pocztowa serwera — bez uwierzytelniania i bez reputacji, przez co zgłoszenia z formularzy i wiadomości resetujące hasło regularnie kończą u Gmaila i Outlooka jako spam.
TYPO3 potrafi ustawić ten transport bezpośrednio na SMTP, bez dodatkowego rozszerzenia. Podają Państwo serwer, port, szyfrowanie i login w ustawieniach MAIL instalacji, a wszystko, co TYPO3 wysyła — również wiadomości z formularzy i przepływów pracy w rozszerzeniach — idzie odtąd przez Państwa relay.
Dlaczego bez relaya coś idzie nie tak
TYPO3 wykorzystywane jest do dużych, wielojęzycznych witryn firm i instytucji publicznych, często z formularzami uruchamiającymi prawdziwą sprawę: zapis, zapytanie ofertowe, aplikację o pracę. Gdy potwierdzenie nie dociera, wnioskodawca dzwoni — albo wypełnia formularz jeszcze raz, a Państwo mają podwójne sprawy. Poczta wprawdzie wychodzi, ale nic nie dowodzi, że pochodzi z Państwa domeny.
Konfiguracja SMTP w TYPO3
Pobranie danych
Zaloguj się na swoje konto 2mail i pobierz stamtąd serwer SMTP, nazwę użytkownika oraz hasło.
Wpisanie w TYPO3
Konfiguracja poczty TYPO3 znajduje się w ustawieniach instalacji, pod kluczami MAIL. Prosimy ustawić transport na SMTP, wpisać serwer z portem, wybrać szyfrowanie i podać nazwę użytkownika oraz hasło. Prosimy ustawić także domyślny adres i nazwę nadawcy we własnej domenie. Narzędzie instalacyjne ma wiadomość testową — prosimy wysłać ją na adres zewnętrzny u dużego dostawcy.
Uwierzytelnienie domeny
Zadbaj o poprawne ustawienie SPF, DKIM i DMARC dla swojej domeny, aby odbiorcy mogli zweryfikować, że wiadomość pochodzi od Ciebie.
Test
Wyślij ze swojej platformy wiadomość testową na adres u dużego dostawcy i sprawdź, czy trafia do skrzynki odbiorczej, a nie do spamu.
Pola, o które prosi TYPO3
Każda platforma nazywa je nieco inaczej, ale zawsze chodzi o te same pięć. Konkretne wartości są powiązane z kontem i znajdą je Państwo na swoim koncie 2mail — prosimy je stamtąd przepisać, aby mieć pewność, że są właściwe.
| Pole | Co wpisać |
|---|---|
| Serwer SMTP (host) | Nazwa serwera z Państwa konta 2mail. |
| Port | Port odpowiadający wybranemu szyfrowaniu; Państwa konto pokazuje, który to. |
| Szyfrowanie | TLS. Nigdy nie wysyłają Państwo bez szyfrowania — inaczej dane logowania idą przez sieć otwartym tekstem. |
| Nazwa użytkownika | Login SMTP Państwa konta 2mail. |
| Hasło | Odpowiadające mu hasło. Nigdy nie należy używać hasła do skrzynki pracownika. |
Konfiguracja SMTP dla TYPO3 w kodzie
Działające przykłady dla portu 587 ze STARTTLS, gotowe do skopiowania. Prosimy zastąpić adres nadawcy adresem we własnej domenie oraz sprawdzić nazwę serwera i login na swoim koncie 2mail. Miejsce hasła jest w zmiennej środowiskowej — nigdy w kodzie i nigdy w systemie kontroli wersji.
Ustawienia MAIL w additional.php
Dane SMTP prosimy wpisać w pliku konfiguracji uzupełniającej, a nie w settings.php: ten drugi jest nadpisywany przez narzędzie instalacyjne, a wywołanie getenv() tego nie przetrwa. Dzięki temu login i hasło pochodzą ze zmiennych środowiskowych serwera i pozostają poza systemem kontroli wersji. Prosimy zwrócić uwagę na transport_smtp_encrypt: w aktualnych wersjach TYPO3 jest to wartość logiczna, która na porcie 587 musi wynosić false — STARTTLS następuje wtedy automatycznie. Tylko bardzo stare wersje (do 9 włącznie) oczekiwały tu ciągu znaków tls.
<?php
// config/system/additional.php
// (older installations: typo3conf/AdditionalConfiguration.php)
$GLOBALS['TYPO3_CONF_VARS']['MAIL'] = array_replace(
$GLOBALS['TYPO3_CONF_VARS']['MAIL'],
[
'transport' => 'smtp',
'transport_smtp_server' => 'relay.2mail.eu:587', // host AND port, in one value
'transport_smtp_encrypt' => false, // false on 587 = STARTTLS; true = TLS from the first byte (465)
'transport_smtp_username' => getenv('SMTP_USERNAME'),
'transport_smtp_password' => getenv('SMTP_PASSWORD'),
'defaultMailFromAddress' => 'noreply@example.com',
'defaultMailFromName' => 'Example',
]
); Wiadomość testowa: narzędzie instalacyjne albo MailMessage
Najszybsza kontrola znajduje się w backendzie: Admin Tools → Environment → Test Mail Setup wysyła wiadomość dokładnie z tymi ustawieniami, które faktycznie obowiązują. Jeśli chcą Państwo testować z własnego rozszerzenia, wystarczy klasa MailMessage z TYPO3 — ta sama droga, którą idą formularze i wiadomości przepływu pracy.
use TYPO3\CMS\Core\Mail\MailMessage;
use TYPO3\CMS\Core\Utility\GeneralUtility;
// No from(): TYPO3 falls back to defaultMailFromAddress / defaultMailFromName.
$mail = GeneralUtility::makeInstance(MailMessage::class);
$mail
->to('you@example.org')
->subject('SMTP test')
->text('Sent through the 2mail SMTP relay.')
->send(); Jakie wiadomości wysyła TYPO3
Gdy relay jest już skonfigurowany, wszystkie idą przez 2mail — nie trzeba ich konfigurować pojedynczo.
Pułapki przy TYPO3
Ustawienia w niewłaściwej warstwie
TYPO3 odczytuje ustawienia instalacji z kilku warstw: pliku konfiguracji systemowej i pliku uzupełniającego, który go nadpisuje. Jeśli wpiszą Państwo dane SMTP w jednej warstwie, podczas gdy druga zawiera jeszcze stary transport, wygra ta druga. Prosimy sprawdzić w narzędziu instalacyjnym, która wartość faktycznie obowiązuje.
Serwer i port należą do siebie
TYPO3 oczekuje serwera i portu razem w ustawieniu transportu. Jeśli zapomną Państwo o porcie, TYPO3 wróci do wartości domyślnej, która nie pasuje do Państwa szyfrowania — a wtedy połączenie wisi albo zostaje od razu zerwane. Port 587 ze STARTTLS to bezpieczny wybór.
Staging z tymi samymi danymi
Jeśli konfiguracja wdrażana jest przez system kontroli wersji, środowisko testowe albo staging wysyła z tym samym loginem — na prawdziwe adresy ze skopiowanej bazy danych. Prosimy używać osobnego loginu dla każdego środowiska, aby dało się je odciąć z osobna.
Częste komunikaty o błędach przy TYPO3
Komunikaty, które zobaczą Państwo, gdy host, port, szyfrowanie albo login się nie zgadzają — przytoczone dosłownie, aby dało się je rozpoznać w logu, wraz z przyczyną i rozwiązaniem obok.
| Komunikat | Przyczyna | Rozwiązanie |
|---|---|---|
Connection could not be established with host "relay.2mail.eu:25": stream_socket_client(): Unable to connect to relay.2mail.eu:25 (Connection timed out) | W transport_smtp_server wpisano samą nazwę serwera, bez portu. TYPO3 wraca wtedy do portu 25, a ten u większości dostawców hostingu i platform chmurowych jest zablokowany dla ruchu wychodzącego. | Prosimy zapisać serwer i port razem w jednej wartości: relay.2mail.eu:587. |
Connection could not be established with host "ssl://relay.2mail.eu:587": stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages: error:…:SSL routines::wrong version number | transport_smtp_encrypt ma wartość true. TYPO3 oczekuje wtedy TLS od pierwszego bajtu, podczas gdy port 587 zaczyna bez szyfrowania i dopiero potem podnosi połączenie przez STARTTLS. | Prosimy ustawić transport_smtp_encrypt na false i zostawić port 587. Połączenie nadal jest szyfrowane. |
Failed to authenticate on SMTP server with username "…" using the following authenticators: "LOGIN", "PLAIN". … Expected response code "235" but got code "535" | Relay odrzuca login. Albo nazwa użytkownika lub hasło się nie zgadzają, albo zmienna środowiskowa jest pusta w kontekście, w którym działa PHP — serwer WWW nie widzi automatycznie tych samych zmiennych co Państwa powłoka. | Prosimy sprawdzić, czy getenv('SMTP_PASSWORD') zwraca wartość w kontekście serwera WWW, i użyć loginu SMTP z Państwa konta 2mail — a nie hasła do skrzynki pocztowej. |
Expected response code "250/251/252" but got code "554", with message "554 5.7.1 <noreply@example.com>: Sender address rejected" | Login jest poprawny, ale adres nadawcy znajduje się w domenie, która nie jest powiązana z Państwa kontem 2mail. Często defaultMailFromAddress jest puste albo formularz ustawia własnego nadawcę. | Prosimy ustawić defaultMailFromAddress na adres w domenie dodanej przez Państwa w 2mail i sprawdzić przy każdym formularzu, jakiego adresu nadawcy używa. |
Inna platforma?
SMTP to protokół standardowy: każdy system, który mówi po SMTP — CRM, ERP, własna aplikacja albo serwer — może wysyłać przez 2mail z użyciem tych samych pięciu pól.