Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

SwiftMailer

Termin Definicja
SwiftMailer

SwiftMailer to biblioteka PHP do wysyłania wiadomości, poprzedniczka obecnie rozwijanego Symfony Mailer.

SwiftMailer jako biblioteka do obsługi poczty w PHP

SwiftMailer to komponentowa biblioteka napisana w języku PHP, przeznaczona do tworzenia i wysyłania wiadomości e-mail z aplikacji internetowych oraz skryptów działających po stronie serwera. Nie jest osobnym programem pocztowym ani serwerem SMTP. Aplikacja przekazuje jej obiekt wiadomości, a SwiftMailer korzysta z wybranego transportu, aby dostarczyć komunikat do lokalnego mechanizmu pocztowego albo zewnętrznego serwera poczty. Biblioteka obsługuje wiadomości tekstowe i HTML, nagłówki, wielu odbiorców, kopie jawne i ukryte, załączniki oraz wiadomości wieloczęściowe.

SwiftMailer składa wiadomość zgodnie ze strukturą MIME, dzięki czemu można połączyć na przykład treść tekstową z wersją HTML i załącznikiem. Rozdzielenie obiektu wiadomości od transportu pozwala zmienić sposób wysyłki bez przebudowy całej logiki aplikacji. Ten model był często wykorzystywany w aplikacjach PHP, formularzach kontaktowych, systemach powiadomień i sklepach internetowych. Sama biblioteka nie gwarantuje jednak dostarczenia wiadomości do skrzynki odbiorcy. Ostateczny rezultat zależy także od serwera SMTP, poprawności adresów, konfiguracji DNS domeny, polityki dostawcy poczty oraz filtrów antyspamowych.

Transport SMTP, Sendmail i konfiguracja połączenia

Najczęściej używanym sposobem pracy SwiftMailera jest transport SMTP, tworzony za pomocą klasy Swift_SmtpTransport. Aplikacja może wskazać nazwę hosta, port, metodę szyfrowania i dane uwierzytelniające. W praktyce spotyka się port 25 dla tradycyjnego SMTP, 587 dla przesyłania poczty z uwierzytelnieniem i STARTTLS oraz 465 dla połączeń szyfrowanych od początku sesji, ale faktyczna konfiguracja zależy od operatora skrzynki. SwiftMailer nie powinien automatycznie zakładać, że każdy dostawca używa tych samych portów lub tej samej metody szyfrowania.

Biblioteka udostępnia również transport wykorzystujący lokalny program Sendmail. W takim wariancie PHP przekazuje wiadomość do programu skonfigurowanego w systemie, zamiast nawiązywać bezpośrednie połączenie z serwerem SMTP. Wybór tego transportu ma znaczenie diagnostyczne: błąd może wynikać zarówno z kodu PHP, jak i z lokalnej konfiguracji programu pocztowego, uprawnień procesu lub ustawień środowiska uruchomieniowego. Przy SMTP problemy zwykle dotyczą niedostępnego hosta, blokady portu, błędnego hasła, niezgodnego certyfikatu TLS albo odrzucenia nadawcy przez serwer. SwiftMailer może zgłaszać wyjątki transportu, dlatego aplikacja powinna je rejestrować i odróżniać błąd połączenia od błędnego adresu odbiorcy.

Instalacja przez Composer i ograniczenia starszej biblioteki

SwiftMailer był standardowo instalowany przez menedżer zależności Composer. Typowa deklaracja zależności wskazywała pakiet swiftmailer/swiftmailer, a w starszych projektach można spotkać polecenie composer require swiftmailer/swiftmailer:^6.0. Composer pobierał bibliotekę wraz z wymaganymi komponentami i generował automatyczny plik autoload. Dzięki temu kod aplikacji mógł korzystać z klas SwiftMailera bez ręcznego dołączania wielu plików z katalogu biblioteki.

SwiftMailer nie jest już aktywnie utrzymywaną biblioteką. Projekt zakończył utrzymanie pod koniec listopada 2021 roku, a jego następcą został Symfony Mailer. Dokumentacja SwiftMailera wskazywała obsługę PHP od wersji 7.0 do 8.1 w ramach ostatniej generacji biblioteki, przy czym wymagane były między innymi dostępne funkcje procesu, takie jak proc_open i powiązane mechanizmy systemowe. Przy uruchamianiu starej aplikacji trzeba więc sprawdzić zgodność wersji PHP, Composer, rozszerzeń oraz certyfikatów systemowych. Samo podniesienie wersji PHP może ujawnić ostrzeżenia lub błędy wynikające z nieaktualnego kodu. W nowym projekcie należy rozważyć Symfony Mailer, natomiast w istniejącym systemie migrację trzeba zaplanować razem z testem formatowania wiadomości, załączników, uwierzytelniania i obsługi błędów.

Sprawdzanie działania SwiftMailera na komputerze i w aplikacji

Diagnostykę należy rozpocząć od ustalenia, czy problem występuje podczas budowania wiadomości, tworzenia transportu, nawiązywania połączenia, uwierzytelniania czy dopiero po przekazaniu komunikatu do serwera. Warto sprawdzić wersję PHP uruchamianą przez konkretny proces, obecność rozszerzenia OpenSSL przy połączeniach TLS, rozwiązywanie nazwy hosta oraz możliwość połączenia z właściwym portem. Test wykonany w wierszu poleceń może korzystać z innej wersji PHP i innych ustawień niż aplikacja uruchamiana przez serwer WWW, dlatego wynik obu środowisk nie zawsze jest równoważny.

Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i podzespołów, dlatego w przypadku problemu z lokalnym środowiskiem PHP można najpierw sprawdzić stan systemu, połączenia sieciowego, certyfikatów oraz podstawowej konfiguracji komputera. Przydatne są także logi aplikacji i dokładny komunikat wyjątku SwiftMailera, ponieważ ogólne stwierdzenie, że „poczta nie działa”, nie wskazuje miejsca awarii. Jeżeli wiadomość została zaakceptowana przez serwer SMTP, ale nie trafiła do odbiorcy, dalszej przyczyny należy szukać w odpowiedzi serwera, regułach dostawcy poczty lub filtrach antyspamowych, a nie wyłącznie w bibliotece PHP.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę