WordPress jako taki nie posiada wbudowanego formularza do wysyłania poczty. Dlatego najpopularniejszym rozwiązaniem jest używanie wtyczki Contact Form 7, dzięki której można tworzyć nawet bardziej skomplikowane formularze. Niestety czasami zdarza się, że formularz taki nie wysyła maili. Pojawia się informacja, że email nie może zostać wysłany albo po prostu poczta nie dochodzi.
Jedną z przyczyn może być wyłączenie funkcji mail() w PHP na serwerze. Niektóre firmy hostingowe wyłączają tę funkcję aby ograniczyć spam. Zdarza się to rzadko, gdyż spotkałam się tylko raz z firmą hostingową, która wyłącza tę funkcję. Na większości serwerów wordpress normalnie wysyła wiadomości.
Jeśli zauważysz coś takiego, przejdź do formularza logowania twojego bloga i spróbuj uruchomić odzyskiwanie hasła czyli kliknij Zapomniałem hasła. W tym przypadku wordpress powinien wysłać na twojego maila wiadomość w celu odzyskania hasła. Jeśli tak się nie dzieje, oznacza to że wordpress w ogóle nie wysyła maili. Wtedy dowiedz się czy twoja firma hostingowa nie wyłącza mail().
W takim przypadku masz kilka rozwiązań.Formularz html
Na stronę statyczną wordpressa można wkleić zwykły formularz html. Taki formularz będzie poprawnie działał ale po wpisaniu wiadomości formularz uruchomi program pocztowy na komputerze wysyłającego i przez niego wysle wiadomość. W sumie każdy ma program pocztowy. Ja nie mam ale korzystam z gmaila czyli wtedy formularz otwiera okienko gmaila.
Jest mało prawdopodobne aby w dzisiejszych czasach osoba wysyłająca nie miała własnego maila, bo przecież wysyłając formularz oczekujemy odpowiedzi. Ale jeśli korzystasz z webmaila to musisz się zalogować i dla niektórych może to być uciążliwe.
Wtyczka wysyłająca pocztę przez SMTP
Można obejść ten problem przy pomocy jednej z wtyczek wysyłających pocztę przez SMTP. Najpopularniejsza jest WP mail SMTP. Jej konfigurację opisano tutaj, dlatego nie będę się powtarzać.
W ustawieniach wtyczki musisz podać:
adres e-mail,
host i port serwera SMTP,
czy potrzebne jest szyfrowanie? jeśli tak to jakie? (SSL czy TLS),
czy potrzebna jest autoryzacja?
nazwa i hasło użytkownika.
Następnie należy wysłać wiadomość testową. Jeśli otrzymasz monit bool(true) oznacza to że wtyczka została poprawnie skonfigurowana i maile się wysyłają. Możesz sprawdzić pocztę czy email testowy doszedł.
Formularz kontaktowy
Htmlowy formularz kontaktowy nadal będzie otwierał program pocztowy, czyli nie jest to dobre rozwiązanie. W tym momencie trzeba wrócić do wtyczki Contact Form 7 i skonfigurować ją. Wtedy formularz będzie wysyłał pocztę przez smtp.
Należy jednak pamiętać o kwestii bezpieczeństwa. Dane logowania do twojej poczty będą zapisane w bazie danych WP w sposób otwarty, czyli każdy z uprawnieniami administratora może je odczytać. Dlatego warto jest używać osobnego konta mailowego specjalnie do tych celów.