Istotnym elementem każdej większości stron internetowych jest dział kontakt, a więc i możliwość skontaktowania się z nami – dlatego dziś sprawimy, by WordPress mógł wysyłać do nas wiadomości e-mail, czy to z powiadomieniami o nowych komentarzach, czy też wiadomości z formularza kontaktowego – o którym więcej będzie w jednym z kolejnych wpisów…
Spis treści w artykule
Obsługa wiadomości e-mail w WordPressie
W sytuacji, gdy zarówno pocztę, jak i stronę WWW mamy na tym samym serwerze, a zwłaszcza gdy korzystamy z hostingu współdzielonego (chyba najpopularniejsza forma wśród zaczynających swoją przygodę z własną stroną w internecie, choć nie tylko…) zazwyczaj sprawa jest prosta – wszystko powinno działać właściwie z automatu…
Dodatkowe działania z naszej strony będą wymagane, gdy pocztę trzymamy na innym serwerze (akurat osobiście preferuje to rozwiązanie, pozwala zarządzać niezależnie zasobami związanymi z pocztą elektroniczną, i tymi związanymi z samą stroną internetową) lub chcemy wysyłać wiadomości przez zewnętrzny serwer (np. Gmail).
WordPress i zewnętrzny serwer SMTP
Pocztę będziemy wysyłać za pośrednictwem serwera SMTP. Najprościej skorzystać z jednej z wielu dostępnych wtyczek, jak np.:
Easy WP SMTP
W takiej sytuacji najczęściej korzystam z wtyczki Easy WP SMTP, szybka i prosta konfiguracja – bez zbędnych wodotrysków, i co najważniejsze – działa.
Po zainstalowaniu i uruchomieniu wtyczki wystarczy przejść do ustawień:
WordPress: Ustawienia > Easy WP SMTP
I wpisać kilka podstawowych informacji, takich jak:
- Nazwa i adres e-mail nadawcy
- Adres serwera SMTP, port i ew. metoda szyfrowania
- Czy wymagana jest autoryzacja – zazwyczaj będzie, więc i jej parametry (login i hasło)
Własna wtyczka / własny kod w functions.php
A dla tych, co preferują własne rozwiązania poniżej kawałek kodu, który możecie wykorzystać do przygotowania w pliku functions.php, lub do przygotowania własnej wtyczki (przydatne, gdy z tym samych ustawień będziecie korzystać na kilku stronach):
add_action('phpmailer_init','moja_funckja_smtp_email');
function moja_funckja_smtp_email( $phpmailer ) {
$phpmailer->isSMTP();
$phpmailer->Host = "smtp.serwerpocztowy.pl"; // Adres serwera SMTP
$phpmailer->Port = "587"; // Nr portu, zazwyczaj: 25|465|587
$phpmailer->SMTPAuth = true; // Autoryzacja SMTP: true|false
$phpmailer->SMTPSecure = "tls"; // Typ szyfrowania, zazwyczaj: tls|ssl
$phpmailer->Username = "login"; // Nazwa użytkownika dla serwera SMTP
$phpmailer->Password = "hasło"; // Hasło użytkownika dla serwera SMTP
$phpmailer->From = "[email protected]"; // Adres e-mail nadawcy
$phpmailer->FromName = "Imie lub pseudonim"; // Nazwa nadawcy
#$phpmailer->Hostname = 'domena'; // Opcjonalnie, czasem może być wymagane, wtedy usunąć # sprzed i podać domenę
}
Po zapisaniu możemy ze strony ustawień wtyczki przeprowadzić jeszcze test – ale jeśli wpisaliśmy poprawnie dane konta e-mail (dotyczące wysyłki), wszystko powinno działać.
- Home Assistant 2024.10, czyli nowa karta „nagłówek” i niedziałający TTS w ramach usługi Google Cloud - 1970-01-01
- Zero Trust od Cloudflare, czyli prosty i bezpieczny sposób na dostęp do lokalnych zasobów z zewnątrz, bez publicznego adresu IP i otwierania portów na routerze - 1970-01-01
- Home Assistant i integracja z IMGW-PIB, czyli tworzymy automatyzację z powiadomieniami bazując na sensorach zagrożenie i alarm powodziowy - 1970-01-01
O co chodzi z tą ostatnią pozycją?
Chodzi o „$phpmailer->Hostname”? Jeśli tak, to… nie jest to specjalnie często wykorzystywany element, bo najczęściej albo serwer SMTP tego nie weryfikuje „specjalnie rygorystycznie”, albo – co pewnie ma miejsce najczęściej – radzi sobie z tym automat:
Ale warto wiedzieć, że taka opcja istnieje, bo może się okazać, że będzie trzeba z niej skorzystać, a z tego co kojarzę, to w większości poradników/przykładów jest ona pomijana. W większości zapewne słusznie, ale… ;-)