Przejdź do treści

Ustawienia plików cookie

Prosimy wybrać, na które rodzaje plików cookie Państwo zezwalają. Wybór można zmienić w dowolnym momencie w Ustawieniach plików cookie na dole każdej strony. Polityka prywatności

Niezbędne

Zawsze włączone

Potrzebne do logowania, zachowania koszyka i zapamiętania wyborów. Są zawsze włączone.

Jakie pliki cookie?
  • weboke_sessie, weboke_klant, weboke_remember: sesja i pozostanie zalogowanym
  • weboke_basket: koszyk
  • wkBtwIncl: wyświetlanie cen z VAT lub bez VAT
  • wok_cookies: wybór dotyczący plików cookie, 12 miesięcy

Mierzą, która reklama prowadzi do odwiedzin lub zamówienia, abyśmy nie płacili za reklamy, które nic nie dają.

Jakie pliki cookie?
  • Google Ads przez Google Tag Manager (_gcl_au, _gcl_aw), do 90 dni
  • OpenAI Ads, reklamy w ChatGPT
  • wok_aff: przez którego partnera trafili Państwo do nas (program partnerski), 60 dni

4,6

Kraj i język

Każdy kraj ma własną stronę z cenami i stawką VAT tego kraju.

Wyświetl

Poczta ze strony internetowej i z formularzy

Moduł 7: Newslettery i poczta wysyłana ze strony internetowej · Czas czytania: 11 minut

Cel lekcji: Po tej lekcji będą Państwo potrafili skonfigurować pocztę ze strony internetowej (formularze kontaktowe, potwierdzenia zamówień, powiadomienia WordPress) tak, aby docierała do adresata, nie powodowała problemów z DMARC i nie prowadziła do nadużywania Państwa pakietu hostingowego.

Kluczowe pojęcia: PHP mail(), SMTP z logowaniem, nadawca koperty (envelope sender), From a Reply-To, adres odwiedzającego nigdy jako From, wtyczka SMTP, poczta transakcyjna, spam formularzowy, captcha, honeypot, limit wysyłki, lokalne doręczenie, gdy MX wskazuje gdzie indziej

Państwa strona internetowa to też program pocztowy

Państwa strona internetowa wysyła więcej poczty, niż mogłoby się wydawać. Formularz kontaktowy wysyła do Państwa każdą wiadomość. Sklep internetowy wysyła potwierdzenia zamówień, faktury i powiadomienia o wysyłce. WordPress wysyła maile przy nowym komentarzu, aktualizacji lub resecie hasła. Dla odbiorcy jest to zwykła poczta z Państwa domeny i jest sprawdzana równie rygorystycznie jak poczta ze skrzynki pocztowej: SPF, DKIM, DMARC, reputacja.

Mimo to poczta ze strony internetowej częściej sprawia problemy niż zwykła poczta. Zazwyczaj wynika to z jednej z trzech rzeczy: sposobu wysyłki, adresu nadawcy lub nadużywania formularza.

Sposób 1: PHP mail()

Najprostszym sposobem wysyłania poczty przez stronę internetową jest funkcja PHP mail(). Strona przekazuje wtedy wiadomość bezpośrednio do programu pocztowego serwera WWW, bez logowania. Zazwyczaj działa, ale ma pewne wady:

  • Nadawca koperty (Return-Path) staje się często kontem systemowym Państwa pakietu, na przykład uzytkownik@server.hosting.example, a nie Państwa adresem. SPF jest wtedy sprawdzane dla domeny serwera, a więc nie jest zgodne (aligned) z domeną From (lekcja 7.1).
  • To, czy dodawany jest podpis DKIM Państwa domeny, zależy od serwera. Na niektórych serwerach tak, na innych nie.
  • Nic Państwo nie widzą. Jeśli wiadomość nie dotrze lub otrzymają Państwo zwrotkę (bounce), trafia ona na konto systemowe, którego nikt nie sprawdza.
  • Brak limitu na formularz. Jeśli formularz zostanie nadużyty, serwer wysyła wiadomości w Państwa imieniu aż do osiągnięcia limitu pakietu.

Sposób 2: SMTP z logowaniem (lepszy)

Niech Państwa strona wysyła pocztę tak, jak robi to program pocztowy: z logowaniem na serwer poczty wychodzącej przy użyciu prawdziwej skrzynki pocztowej, przez port 587 (STARTTLS) lub 465 (SSL/TLS), z pełnym adresem e-mail jako nazwą użytkownika (lekcja 1.4 i 2.1). Wtedy:

  • nadawcą koperty jest Państwa adres, a wiadomość jest podpisywana tak jak zwykła poczta z Państwa domeny,
  • zwrotki (bounce) trafiają do skrzynki pocztowej, którą Państwo mogą odczytać,
  • wysłana wiadomość, jeśli Państwo sobie tego życzą, znajduje się w folderze Wysłane,
  • dla każdej skrzynki pocztowej mogą Państwo ustawić osobny limit wysyłki.

W WordPressie robi się to za pomocą wtyczki SMTP. Zastępuje ona domyślną funkcję mailową WordPressa wysyłką przez SMTP. Wprowadzają Państwo te same dane co w programie pocztowym: serwer, port, zabezpieczenie, nazwę użytkownika i hasło. Najlepiej utworzyć do tego osobną skrzynkę pocztową, na przykład website@example.com. Jeśli hasło kiedykolwiek wycieknie, Państwa własna skrzynka pocztowa pozostanie bezpieczna, a Państwo od razu widzą, która poczta pochodzi ze strony internetowej.

Dla własnej strony opartej na PHP istnieją biblioteki wysyłające pocztę przez SMTP, takie jak PHPMailer. Hasło należy umieścić w pliku konfiguracyjnym poza katalogiem WWW, a nie w kodzie strony.

W WebOké dane do SMTP znajdują się w instrukcji DirectAdmin 8.1, wraz z nazwą serwera Państwa pakietu; u innych dostawców znajdują się w instrukcji lub mailu powitalnym i działają w podobny sposób.

Dużo poczty transakcyjnej? Skorzystaj z usługi

Jeśli wysyłają Państwo setki potwierdzeń zamówień dziennie, warto skorzystać z usługi transakcyjnej: usługi wysyłkowej dla poczty automatycznej. Ma ona dobrą reputację i pokazuje, co się stało z każdą wiadomością. Domenę łączy się tak samo jak przy usłudze newsletterowej (DKIM przez CNAME, lekcja 7.1). Pocztę transakcyjną i newslettery należy trzymać osobno: nieudana kampania nie powinna wpływać na mail potwierdzający zamówienia.

Złota zasada: adres odwiedzającego nigdy nie jest nadawcą

Przy formularzu kontaktowym kusząca jest myśl, aby wiadomość wysyłana była „od” odwiedzającego. Wtedy w programie pocztowym można od razu kliknąć Odpowiedz. Wygląda to tak:

From: Pieter <pieter@example.net>
To: info@example.com
Subject: Vraag via het contactformulier

Jednak Państwa serwer wcale nie ma prawa wysyłać poczty w imieniu example.net. Załóżmy, że example.net ma politykę DMARC p=reject. Serwer odbierający (Państwa własny lub serwer Gmail, jeśli przekierowują Państwo pocztę) widzi wiadomość z From example.net, która nie przechodzi SPF ani DKIM dla example.net, i odrzuca ją. Wiele dużych domen pocztowych ma rygorystyczną politykę: podczas kontroli 8 listopada 2026 roku domeny takie jak yahoo.com, aol.com, ziggo.nl i kpnmail.nl miały politykę DMARC p=reject, a icloud.com, gmx.de i web.de politykę p=quarantine. Odwiedzający z takim adresem wypełnia Państwa formularz, a Państwo nigdy nie otrzymują wiadomości albo trafia ona do folderu spam. Domeny z polityką p=none (jak w tamtym momencie gmail.com i hotmail.com) mogą w każdej chwili zaostrzyć swoją politykę, a Google w swoich wytycznych wyraźnie zaznacza, że nie wolno naśladować adresów Gmail jako From. Nigdy więc nie należy liczyć na to, że wszystko pójdzie dobrze.

Właściwy sposób:

From: Website example.com <website@example.com>
Reply-To: Pieter <pieter@example.net>
To: info@example.com
Subject: Vraag via het contactformulier

Nadawcą jest Państwa własny adres, więc SPF, DKIM i DMARC są prawidłowe. Adres odwiedzającego znajduje się w polu Reply-To. Po kliknięciu Odpowiedz, odpowiedź trafia do Pietera. W większości wtyczek formularzy znajdą Państwo tę opcję w ustawieniach poczty: w polu Nadawca (From) należy wpisać stały adres własnej domeny, a w polu Reply-To pole, w którym odwiedzający wpisuje swój adres.

Zabezpieczanie formularzy przed nadużyciami

Formularz bez zabezpieczenia prędzej czy później zostanie znaleziony przez boty. W najlepszym przypadku Państwo otrzymują spam. W najgorszym przypadku boty wykorzystują go do wysyłania spamu do innych osób: jeśli formularz wysyła potwierdzenie na „adres podany przez odwiedzającego”, bot może tam wpisać dowolny adres na świecie, wraz z własnym tekstem wiadomości. Wtedy Państwa domena wysyła spam, ze wszystkimi konsekwencjami dla reputacji (lekcja 5.2).

Zabezpieczenie warstwowe:

  • Captcha lub niewidoczna kontrola (jak reCAPTCHA lub Turnstile) zatrzymuje większość botów.
  • Honeypot: ukryte pole, którego ludzie nie widzą, a boty wypełniają. Jeśli zostanie wypełnione, wiadomość nie jest wysyłana.
  • Brak dowolnego tekstu w potwierdzeniu wysyłanym do odwiedzającego lub całkowity brak potwierdzenia na podany adres. Prosty komunikat „Dziękujemy, otrzymaliśmy Państwa wiadomość” na stronie w zupełności wystarczy.
  • Limit wysyłki dla skrzynki pocztowej strony internetowej, niższy niż limit całego pakietu.
  • Aktualizacja oprogramowania. Stare wtyczki to znana droga do nadużyć.

Zauważają Państwo, że pakiet nagle wysyła dużo poczty, lub otrzymują Państwo powiadomienie o osiągnięciu dziennego limitu, mimo że sami wysyłają Państwo niewiele wiadomości? Proszę wtedy natychmiast zmienić hasła i sprawdzić, który formularz lub skrypt wysyła pocztę (lekcja 3.4).

Poczta gdzie indziej, strona tutaj

Częsta pułapka: Państwa strona internetowa znajduje się u jednego dostawcy, a poczta u innego (na przykład Microsoft 365 lub Google Workspace). Rekord MX wskazuje na tego innego dostawcę. Jednak serwer WWW nadal uważa, że sam obsługuje pocztę dla Państwa domeny, ponieważ domena jest też skonfigurowana na jego własnym pakiecie. Wiadomość z formularza do info@example.com doręcza wtedy lokalnie, do skrzynki pocztowej na serwerze WWW, której nikt nie sprawdza, albo zwraca błąd typu 550 ... mailbox unavailable.

Rozwiązaniem jest wskazanie w panelu serwera WWW, że poczta jest obsługiwana gdzie indziej. W DirectAdmin w WebOké jest to opcja „Użyj tego serwera do obsługi mojej poczty e-mail” przy Rekordy MX (należy ją wyłączyć). Inne panele mają podobne ustawienia, na przykład „routing poczty: zewnętrzny” w cPanel. Jeszcze lepiej: niech strona wysyła pocztę przez SMTP, korzystając ze skrzynki pocztowej u dostawcy, u którego naprawdę znajduje się Państwa poczta.

Podsumowanie

  • Poczta ze strony internetowej jest sprawdzana równie rygorystycznie jak zwykła poczta. Niech strona wysyła pocztę przez SMTP z logowaniem, a nie przez mail().
  • Dla strony internetowej należy używać osobnej skrzynki pocztowej, z własnym limitem wysyłki.
  • Adres odwiedzającego należy umieszczać w Reply-To, nigdy w From. W przeciwnym razie DMARC zakończy się niepowodzeniem, a przy domenach z polityką p=reject (jak yahoo.com, ziggo.nl, kpnmail.nl) wiadomość zostanie odrzucona.
  • Formularze należy zabezpieczać za pomocą captcha, honeypot i bez wysyłania dowolnej treści w potwierdzeniach na podane adresy.
  • Jeśli Państwa poczta znajduje się u innego dostawcy, należy wyłączyć lokalne doręczanie na serwerze WWW albo wysyłać pocztę przez SMTP u tego dostawcy.

Quiz

1. Odwiedzający z adresem @gmail.com wypełnia Państwa formularz kontaktowy. Formularz umieszcza jego adres w polu From. Jaki jest prawdopodobny skutek?



2. Jaka jest najważniejsza zaleta SMTP z logowaniem w porównaniu z PHP mail()?



3. Państwa poczta znajduje się w Microsoft 365, a strona internetowa u firmy hostingowej. Wiadomości z formularza na info@example.com nigdy nie docierają. Jaka jest prawdopodobna przyczyna?



4. Jaki środek zapobiega wykorzystywaniu Państwa formularza przez boty do wysyłania spamu do innych osób?



5. Dlaczego lepiej jest używać dla strony internetowej osobnej skrzynki pocztowej, na przykład website@example.com?



Zadanie

Zadanie O7.3: Sprawdzenie poczty z witryny internetowej. Proszę wypełnić formularz na własnej stronie internetowej, podając jako nadawcę adres Gmail lub Outlook.com, a następnie przeanalizować nagłówki wiadomości, która do Państwa dotrze. Proszę odpowiedzieć na pytania z listy kontrolnej: jaki adres znajduje się w polu From, czy adres odwiedzającego znajduje się w Reply-To, co pokazują spf=, dkim= i dmarc= w Authentication-Results, czy Państwa strona wysyła pocztę przez SMTP czy przez mail(), oraz czy formularz ma captcha lub honeypot? Jeśli nie mają Państwo własnej strony internetowej, proszę odpowiedzieć na pytania na podstawie przykładu z tej lekcji. Po wykonaniu zadania otrzymają Państwo przykładową odpowiedź.

Zadanie O7.3: Sprawdzenie poczty z witryny internetowej

To zadanie wykonuje się samodzielnie, nikt go nie sprawdza. Prosimy zaznaczyć wykonane punkty i oznaczyć zadanie jako wykonane.


Zaznaczenia i notatki pozostają tylko w tej przeglądarce; nie są nigdzie wysyłane. Po zalogowaniu w Moje kursy zapisywana jest jedynie informacja, że zadanie zostało wykonane.

Dalsza lektura

Kroki opisane w tych artykułach dotyczą paneli WebOké; u innych dostawców działa to w podobny sposób.

Chwileczkę…

Konfiguracja domen

Dla każdej domeny można ustawić serwery nazw, powiązanie z hostingiem oraz to, kto zostanie właścicielem.

Wczytywanie domen…