Jak wysyłać wiadomości za pomocą formularzy?

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.

WAŻNE! Z uwagi na bezpieczeństwo oraz dostęp wskazanych, przykładowych, pluginów i bibliotek PHP do danych dostępowych konta e-mail, sugerujemy podczas konfiguracji korzystać z dodatkowego konta e-mail, utworzonego na potrzeby działania formularza kontaktowego.

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.

Kliknij tutaj, aby dowiedzieć się więcej jak dodać nową skrzynkę e-mail na serwerze.

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.

Plugin WP Mail SMTP zmienia konfigurację wysyłki wiadomości e-mail za pośrednictwem funkcji wp_mail(), aby przy próbie wysyłki stosowany był SMTP zamiast funkcji mail(). W panelu administracyjnym WordPress możesz zarządzać ustawieniami SMTP.
Plugin Easy WP SMTP pozwala skonfigurować i wysyłać wszystkie wychodzące wiadomości e-mail z systemu WordPress za pośrednictwem preferowanego serwera 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:

  1. Zaloguj się do panelu administracyjnego Joomla!.
  2. Przejdź do opcji menu „System” -> „Konfiguracja globalna”.
  3. W górnej części ekranu wybierz zakładkę „Serwer” i znajdź sekcję „Poczta”.
  4. 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 serwera pocztowego, adres serwera pocztowego znajdziesz w panelu klienta. Kliknij tutaj, aby dowiedzieć się jak znaleźć nazwę serwera pocztowego.

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 chmura.orange.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.

  1. 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.
  2. 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.
  3. 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 dostępny w panelu administratora";    //adres serwera SMTP wysyłającego e-mail
$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.

Podczas konfiguracji skryptów do wysyłki poczty e-mail (przykładowy skrypt powyżej), może być wymagane podanie adresu serwera pocztowego (SMTP). Adres serwera pocztowego znajdziesz w Panelu klienta (w sekcji menu „Poczta”). Kliknij tutaj, aby zobaczyć gdzie możesz znaleźć adresy serwerów pocztowych.
WAŻNE! Z uwagi na bezpieczeństwo oraz dostęp wskazanych, przykładowych, pluginów i bibliotek PHP do danych dostępowych konta e-mail, sugerujemy podczas konfiguracji korzystać z dodatkowego konta e-mail, utworzonego na potrzeby działania formularza kontaktowego. Kliknij tutaj, aby dowiedzieć się więcej jak dodać nową skrzynkę e-mail na serwerze.
  • Czy artykuł był pomocny?
  • TAK   Nie