| 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 PHPSwiftMailer 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łączeniaNajczęściej używanym sposobem pracy SwiftMailera jest transport SMTP, tworzony za pomocą klasy 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 bibliotekiSwiftMailer był standardowo instalowany przez menedżer zależności Composer. Typowa deklaracja zależności wskazywała pakiet 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 Sprawdzanie działania SwiftMailera na komputerze i w aplikacjiDiagnostykę 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. |