Od 2022 roku Gmail (Google) i inne znane usługi pocztowe, takie jak Outlook, Yahoo, Zoho, wzmocniły metody ochrony, aby zabezpieczyć swoich użytkowników przed spamem i nieautoryzowanymi wiadomościami. Aby skutecznie dostarczać wiadomości, należy przestrzegać określonego zestawu wymagań, które te usługi pocztowe ustalają dla nadawców.
Jeśli nadawca nie spełnia w pełni wymagań konkretnej usługi pocztowej, do której wysyłana jest wiadomość, taka wiadomość może zostać oznaczona jako spam. W przeciwnym razie wiadomość w ogóle nie zostanie dostarczona, a w odpowiedzi otrzymasz komunikat o błędzie od serwera pocztowego, w którym podana będzie przyczyna niedostarczenia.
Przyjrzyjmy się przykładom najlepszych praktyk dotyczących wysyłania e-maili w Gmailu. Naszym źródłem informacji będzie oficjalna dokumentacja Google, dostępna pod linkiem support.google.com/mail/answer/81126
1. Zawsze używaj SMTP zamiast PHP MAIL
Najczęściej tworząc stronę, deweloper do wysyłania wiadomości używa metody PHP MAIL (wbudowanej funkcji PHP), ponieważ jest to prostsze, nie wymaga dodatkowych ustawień i pozwala zaoszczędzić czas na rozwój, jednak ta metoda nie zapewnia takiego poziomu bezpieczeństwa, sukcesu dostarczenia i poziomu kontroli, jaki oferuje SMTP (poczta domenowa).
Do wysyłania wiadomości do klientów (stan zamówień, potwierdzenia płatności, przywracanie dostępu do kont) zawsze należy używać metody wysyłki SMTP.
Metodę PHP MAIL warto stosować tylko do wysyłania wiadomości systemowych/testowych z witryny w celu debugowania jej działania, ale nie do prowadzenia pełnoprawnej korespondencji. Do czasu zmian w politykach dostarczania wiadomości metoda PHP MAIL mogła zapewniać dostarczenie wiadomości, choć z większym ryzykiem trafienia do spamu, dlatego obecnie zdecydowanie zalecamy przejście na wysyłkę wiadomości metodą SMTP.
Aby skorzystać z metody SMTP, utwórz skrzynkę pocztową na hostingu, a w ustawieniach modułu wysyłki na stronie wpisz host, porty i protokoły bezpieczeństwa, które można znaleźć w sekcji "Ustawienia dla klienta pocztowego" w dziale "Poczta" na hostingu. Ogólnie rzecz biorąc, warto powierzyć kwestię przejścia na SMTP specjaliście, który zajmował się tworzeniem strony, ponieważ to jego zakres odpowiedzialności.
2. Dla domeny, z której wysyłane są wiadomości, konieczne jest posiadanie obowiązkowych rekordów DNS - DKIM i SPF, a rekordy muszą odpowiadać serwerowi pocztowemu, z którego następuje wysyłka.
Jeśli wysyłasz wiadomości przez serwer hostingu wirtualnego, możesz skonfigurować poprawne rekordy DKIM/SPF zgodnie z tą instrukcją.
Upewnij się, że dla twojej domeny istnieje tylko jeden rekord SPF. Jeśli masz dwa lub więcej takich rekordów, usuń zbędne lub połącz je w jeden. Posiadanie więcej niż jednego rekordu SPF dla domeny może prowadzić do potencjalnego trafienia wiadomości do spamu. Jeśli używasz serwera VDS/DS do wysyłania, poprawne rekordy DKIM/SPF muszą być utworzone bezpośrednio na serwerze. Na przykład panel sterowania Hestia automatycznie generuje te rekordy. W przeciwnym razie będziesz musiał skonfigurować je w swoich ustawieniach serwera w zależności od używanego oprogramowania.
Ponadto dla serwerów VDS/DS ważne jest posiadanie rekordu PTR DNS, który odnosi się do domeny, z której następuje wysyłka wiadomości. W tej instrukcji opisano, jak ustawić rekord PTR.
3. W wiadomości ważne jest, aby nagłówek "Od kogo" (FROM) odpowiadał domenie lub stronie, z której następuje wysyłka.
Jeśli używasz metody PHP MAIL do wysyłania wiadomości przez serwer hostingu wirtualnego, nagłówek FROM musi być określony w twoim skrypcie wysyłki lub w ustawieniach twojej strony. Jeśli takie ustawienie jest nieobecne, możesz określić nagłówek FROM za pomocą parametru sendmail_path w ustawieniach PHP dla odpowiedniej strony.
4. Użyj serwisu mail-tester.com
mail-tester.com to serwis do wykrywania możliwych problemów z wysyłaniem wiadomości i ich debugowania. Serwis ten umożliwia określenie problematycznych aspektów wymagających rozwiązania.
Aby skorzystać z mail-testera, przejdź na ich stronę internetową i skopiuj podany adres e-mail. Następnie wyślij wiadomość ze swojej witryny na ten adres i naciśnij przycisk "sprawdź". Na przykład, jeśli nie otrzymujesz powiadomienia o zamówieniu towaru z twojej strony, możesz zamówić towar za pomocą tego samego adresu e-mail mail-testera, aby serwis analizował wiadomość z perspektywy twojego klienta.
Jeśli wiadomość została pomyślnie wysłana do mail-testera, zostaniesz poproszony o zapoznanie się ze szczegółowym raportem wraz z oceną dostarczenia wiadomości. W raporcie zostaną wskazane aspekty, które są niezbędne do pomyślnego dostarczenia wiadomości do folderu "odebrane", takie jak ustawienia DKIM, SPF, PTR, ocena domeny, brak poprawnego nagłówka FROM i inne czynniki.
5. Przeprowadź niezależne testowanie samego faktu wysyłania wiadomości
Jeśli istnieją podejrzenia, że wiadomości nie są wysyłane z serwera, zaleca się przeprowadzenie testu za pomocą testowych skryptów PHP, które używają potrzebnej metody wysyłki, takiej jak PHP MAIL lub SMTP, jak opisano w instrukcji.
Jeśli testowy skrypt PHP pomyślnie wysyła wiadomość i dostarcza ją do testowej skrzynki, warto kontynuować pracę z ustawieniami wysyłki na poziomie rekordów DNS domeny i ustawień strony.
W warunkach hostingu wirtualnego mogą istnieć ograniczenia dotyczące wysyłania wiadomości w niektórych przypadkach, na przykład podczas korzystania z okresu próbnego hostingu lub z powodu blokady zewnętrznych połączeń z powodu obecności złośliwego kodu na stronie.
6. Zwróć uwagę na dodatkowe źródła informacji
Spam: dlaczego tam trafiają wiadomości i jak tego uniknąć
Co zrobić, aby wiadomości do użytkowników Gmaila nie były blokowane i nie były oznaczane jako spam
Rozwiązywanie problemów z dostarczaniem wiadomości na Outlook (Microsoft)
Wszystkie kategorie pytań
Ogólne pytania dotyczące serwerów