Przegląd PHP mail

Popular:
POWIĘKSZ SWOJĄ KONFIGURACJĘ SERWERA! ZASTOSUJ AVA I URUCHOM Z 15% ZNIŻKI
UŻYJ PROMOCJI:

Funkcja mail() jest wbudowana w PHP i służy do wysyłania e-maili bezpośrednio z serwera internetowego. To prosty sposób na wysyłanie powiadomień, wiadomości z formularzy kontaktowych, potwierdzeń zamówień i innych typów wiadomości.

Odpowiednia do podstawowej funkcjonalności e-mail bez użycia zewnętrznych bibliotek.

Jak działa mail()

Kiedy wywołujesz funkcję mail(), PHP przekazuje e-mail do agenta transferu poczty (MTA) zainstalowanego na serwerze (zwykle Sendmail lub Postfix). MTA następnie przetwarza i dostarcza wiadomość na wskazany adres.

 Składnia

mail(to, subject, message, headers, parameters);

 Parametry

ParametrOpis
$toAdres e-mail odbiorcy. Możesz podać wiele adresów oddzielonych przecinkami.
$subjectTemat e-maila. Nie może zawierać łamań linii.
$messageGłówna treść wiadomości.
$headersDodatkowe nagłówki, takie jak From, Reply-To, Cc, Bcc itp.
$parametersDodatkowe parametry, takie jak określenie nadawcy dla Sendmail (-f).

Prosty przykład

<?php $to = "user@example.com"; $subject = "Test Email"; $message = "Hello! This is a test email sent using PHP."; $headers = "From: webmaster@yourdomain.com"; mail($to, $subject, $message, $headers); ?>

 Ważne uwagi

1. Nagłówek From: jest wymagany

Jeśli nie określisz nagłówka From:, większość serwerów pocztowych odrzuci wiadomość jako podejrzaną lub spam.

$headers = "From: noreply@yourdomain.com";

2. Formatowanie wiadomości wieloliniowych

Użyj rn, aby oddzielić linie w swojej wiadomości:

$message = "Hello,rnrnThank you for your order.rnrnBest regards,rnYour Team";

3. Wiele nagłówków

Użyj rn, aby oddzielić wiele nagłówków, takich jak Reply-To, Cc i Bcc:

$headers = "From: admin@yourdomain.comrn"; $headers .= "Reply-To: support@yourdomain.comrn"; $headers .= "Cc: someone@yourdomain.comrn";

Przykład: Wysyłanie e-maila HTML (tylko tekst)

Funkcja mail() nie obsługuje załączników natywnie. Ale możesz wysyłać e-maile HTML lub ręcznie ustawić typ treści:

$headers = "MIME-Version: 1.0rn"; $headers .= "Content-type: text/html; charset=UTF-8rn"; $headers .= "From: info@yourdomain.com"; $message = "<h1>Hello!</h1><p>Your order has been received.</p>"; mail("user@example.com", "Order Confirmation", $message, $headers);

 Typowe problemy i rozwiązania

ProblemPrzyczyna / Rozwiązanie
Wiadomość e-mail nie została dostarczonaBrak nagłówka From: lub adres IP serwera znajduje się na czarnej liście
Wiadomość e-mail w ogóle się nie wysyłaBrak zainstalowanego MTA (wymagany np. Sendmail/Postfix)
Błąd: mail() został wyłączonymail() jest wyłączony w php.ini (często przez politykę hosta)
Rosyjski tekst pojawia się jako ????Charset nie jest ustawiony na UTF-8 w nagłówkach
Wiadomości e-mail trafiają do spamuNieprawidłowy From, brak SPF/DKIM lub źle skonfigurowana domena

 Podsumowanie

Funkcja mail() jest podstawowym, ale potężnym narzędziem do wysyłania e-maili bezpośrednio z skryptów PHP. Jest:

  • Łatwa w użyciu
  • Nie wymaga dodatkowych bibliotek
  • Odpowiednia do wewnętrznych powiadomień, formularzy kontaktowych i autoresponderów

Jednak pamiętaj o jej ograniczeniach:

  • Zależy od konfiguracji poczty serwera
  • Nie obsługuje załączników
  • Może być domyślnie wyłączona w niektórych środowiskach hostingu współdzielonego

Jeśli planujesz regularnie wysyłać e-maile, upewnij się, że twój serwer jest odpowiednio skonfigurowany do wysyłania poczty (z zainstalowanym Sendmail/Postfix, skonfigurowanymi rekordami SPF/DKIM oraz włączoną funkcją mail() w php.ini).