- Mam stronę w WordPress
- Mam stronę w Joomla!
- Moja strona została zbudowana na podstawie własnego projektu
Z uwagi na swój podeszły wiek, funkcja mail() posiada kilka luk bezpieczeństwa, które między innymi pozwalają podpisywać się nie swoim adresem e-mail, co może być wykorzystane do wysyłki spamu. W chwili obecnej sugerujemy użycie innej biblioteki, umożliwiającej wysyłkę wiadomości z poziomu skryptu, stosując autoryzację SMTP do założonego konta e-mail.
Podczas konfigurowania połączenia SMTP należy podać dane dostępowe do istniejącej skrzynki e-mail, która będzie służyła do wysyłki wiadomości wysłanych z poziomu formularza kontaktowego. Może być to dowolna skrzynka e-mail (np. utworzona w ramach Twojego serwera lub inna skrzynka e-mail, np. bezpłatne konto pocztowe w Gmail). Wszystkie wiadomości e-mail wysyłane z poziomu formularza kontaktowego będą wysyłane za pośrednictwem zdefiniowanej przez Ciebie skrzynki e-mail.
Za pośrednictwem Panelu klienta możesz szybko utworzyć dodatkową skrzynkę e-mail, nadając jej unikalny adres np. w domenie, która została przypisana do Twojego konta. Dzięki takiemu rozwiązaniu, będziesz mógł w pełni kontrolować przepływ informacji bezpośrednio z formularza kontaktowego a jednocześnie zapewnisz bezpieczeństwo pozostałym skrzynkom e-mail, których dane dostępowe nie będą używane w konfiguracji skryptu i autoryzacji SMTP.
Mam stronę w WordPress
Jeśli Twoja strona WWW zbudowana jest na podstawie CMS WordPress, sugerujemy skorzystanie z pluginów, które umożliwiają wysyłkę wiadomości e-mail z poziomu WordPress poprzez SMTP. W tym celu możesz zainstalować plugin Easy WP SMTP lub WP Mail SMTP i następnie odpowiednio skonfigurować ustawienia SMTP.
Mam stronę w Joomla!
Jeśli Twoja strona WWW została oparta o oprogramowanie Joomla!, sugerujemy skorzystanie z modułów lub komponentów, służących do dodawania formularzy kontaktowych, które umożliwiają wysyłkę poprzez SMTP. Dodatkowo sugerujemy zmianę ustawień wysyłki wiadomości e-mail w konfiguracji Joomla! na „SMTP Server”. Aby zmienić te ustawienia wykonaj poniższe kroki:
- Zaloguj się do panelu administracyjnego Joomla!.
- Przejdź do opcji menu „System” -> „Konfiguracja globalna”.
- W górnej części ekranu wybierz zakładkę „Serwer” i znajdź sekcję „Poczta”.
- W wyświetlonym formularzu zmień ustawienia wysyłania poczty:
- Obsługa poczty – wybierz opcję SMTP,
- Wysyłaj z adresu – wpisz adres skrzynki e-mail, za pośrednictwem której będą wysyłane wiadomości e-mail z formularza kontaktowego,
- Nazwa nadawcy – wpisz tekst wyświetlany w polu „Od:”. Możesz wpisać adres e-mail lub inną nazwę,
- Uwierzytelnianie SMTP – zaznacz na „TAK”,
- Bezpieczeństwo SMTP – ustaw na „BRAK”,
- Port SMTP – wpisz numer 587,
- Użytkownik SMTP – wpisz nazwę użytkownika dla skrzynki e-mail (najczęściej pełny adres e-mail),
- Hasło SMTP – wpisz hasło dostępu do skrzynki e-mail,
- Serwer SMTP – wpisz adres swojego serwera pocztowego, który znajdziesz w Panelu klienta (w sekcji menu „Poczta”). Kliknij tutaj, aby zobaczyć gdzie możesz znaleźć adresy serwerów pocztowych.
Moja strona została zbudowana na podstawie własnego projektu
Jeśli Twoja strona WWW nie korzysta z żadnego systemu do zarządzania treścią (ang. CMS), np. została zbudowana na podstawie własnego projektu od zera, skorzystaj z jednej z popularnych bibliotek np. PEAR::Net_SMTP, PEAR::Mail lub phpMailer, o której przeczytasz więcej w poniższym przykładzie. Bibliotekę phpMailer możesz dostosować do swoich potrzeb i wstawić w kod swojej strony kontaktowej.
Przykład zastosowania biblioteki phpMailer do wysyłania poczty e-mail z formularza kontaktowego:
Serwery pocztowe Strefa.pl do wysyłki wymagają uwierzytelnienia SMTP. Aby móc wysyłać wiadomości e-mail z poziomu PHP (czyli np. z poziomu formularzy kontaktowych umieszczonych na stronach WWW), należy skorzystać z dodatkowych bibliotek (np. phpMailer), gdyż przestarzała funkcja mail() takiego sposobu uwierzytelniania nie udostępnia.
- Pobierz skrypt ze strony: https://github.com/PHPMailer/PHPMailer i rozpakuj go. Aby pobrać archiwum ze skryptem do rozpakowania, wejdź pod podany adres i kliknij przycisk „Download ZIP” w prawym górnym rogu.
- Po rozpakowaniu pobranego archiwum, za pomocą dowolnego klienta FTP skopiuj trzy pliki (class.phpmailer.php, class.smtp.php oraz PHPMailerAutoload.php) z rozpakowanego katalogu do katalogu, w którym znajduje się strona WWW. Plik z formularzem kontaktowym służącym do wysyłania wiadomości powinien znajdować się w tej samej lokalizacji.
- Tworzymy wspomniany plik z formularzem kontaktowym, a następnie uzupełniamy go o poniższy kod PHP. Plik z formularzem kontaktowym powinien znajdować się w tej samej lokalizacji co trzy przesłane wcześniej pliki (w tym samym katalogu).
<?php require 'PHPMailerAutoload.php'; require_once('class.phpmailer.php'); // dodanie klasy phpmailer require_once('class.smtp.php'); // dodanie klasy smtp $mail = new PHPMailer(); //utworzenie nowej klasy phpmailer $mail->From = "formularz@twojadomena.pl"; //Pełny adres e-mail $mail->FromName = "Formularz kontaktowy"; //imię i nazwisko lub nazwa użyta do wysyłania wiadomości $mail->Host = "adres serwera pocztowego znajdziesz w Panelu klienta"; //adres serwera pocztowego SMTP $mail->Mailer = "smtp"; //do wysłania zostanie użyty serwer SMTP $mail->SMTPAuth = true; //włączenie autoryzacji do serwera SMTP $mail->Username = "formularz@twojadomena.pl"; //nazwa użytkownika do skrzynki e-mail $mail->Password = "hasło"; //hasło użytkownika do skrzynki e-mail $mail->Port = 587; //port serwera SMTP $mail->Subject = "temat"; //Temat wiadomości, można stosować zmienne i znaczniki HTML $mail->Body = 'treść'; //Treść wiadomości, można stosować zmienne i znaczniki HTML $mail->SMTPAutoTLS = false; //wyłączenie TLS $mail->SMTPSecure = ''; // $mail->AddAddress ("admin@twojadomena.pl","Marek Nowak"); //adres skrzynki e-mail oraz nazwa //adresata, do którego trafi wiadomość if($mail->Send()) //sprawdzenie wysłania, jeśli wiadomość została pomyślnie wysłana { echo 'E-mail został wysłany'; //wyświetl ten komunikat } else //w przeciwnym wypadku { echo 'E-mail nie mógł zostać wysłany'; //wyświetl następujący } ?>
Więcej informacji oraz przykładów opartych o phpMailer znajdziesz pod tym adresem.