Jak wysłać e-mail za pomocą funkcji PHP mail()

Czym jest poczta PHP?

PHP mail to wbudowana funkcja PHP służąca do wysyłania wiadomości e-mail ze skryptów PHP.

Funkcja mail akceptuje następujące parametry:

  • Adres e-mail
  • Temat
  • Twoja wiadomość
  • Adresy e-mail CC lub BC

  • To ekonomiczny sposób powiadamiania użytkowników o ważnych wydarzeniach.
  • Pozwól użytkownikom na skontaktowanie się z Tobą za pośrednictwem poczty elektronicznej, udostępniając formularz kontaktowy na stronie internetowej, z którego wysyłana jest na podany adres e-mail udostępniona treść.
  • Programiści mogą używać go do otrzymywania błędów systemowych pocztą elektroniczną
  • Możesz go użyć do wysyłania wiadomości e-mail do subskrybentów swojego newslettera.
  • Możesz go użyć do wysłania linków do resetowania hasła użytkownikom, którzy zapomną swoich haseł
  • Możesz go użyć do wysłania linków aktywacyjnych/potwierdzających. Jest to przydatne podczas rejestrowania użytkowników i weryfikacji ich adresów e-mail

Dlaczego/Kiedy używać poczty PHP

Wysyłanie poczty za pomocą PHP

Funkcja poczty PHP ma następującą podstawową składnię

<?php
mail($to_email_address,$subject,$message,[$headers],[$parameters]);
?>

TUTAJ,

  • „$to_email_address” to adres e-mail odbiorcy wiadomości
  • „$subject” to temat wiadomości e-mail
  • „$message” to wiadomość, która ma zostać wysłana.
  • „[$headers]” jest opcjonalne, można go użyć do zamieszczenia informacji takich jak CC, BCC

    • CC to skrót od carbon copy. Używa się go, gdy chcesz wysłać kopię zainteresowanej osobie, np. e-mail ze skargą wysłany do firmy może być również wysłany jako CC do zarządu skarg.
    • BCC to skrót od blind carbon copy. Jest podobny do CC. Adresy e-mail zawarte w sekcji BCC nie będą wyświetlane innym odbiorcom.

Prosty Mail Transmission Protokół (SMTP)

Program pocztowy PHP używa Simple Mail Transmission Protokół (SMTP) do wysyłania poczty.

Na serwerze hostowanym ustawienia SMTP zostałyby już skonfigurowane.

Ustawienia poczty SMTP można skonfigurować w pliku „php.ini” w folderze instalacyjnym PHP.

Konfigurowanie ustawień SMTP na komputerze lokalnym Zakładając, że używasz xampp w systemie Windows, znajdź plik „php.ini” w katalogu „C:\xampp\php”.

  • Otwórz go za pomocą notatnika lub dowolnego edytora tekstu. W tym przykładzie użyjemy notatnika. Kliknij menu edycji

Prosty Mail Transmission Protokół

  • Kliknij menu Znajdź…

Prosty Mail Transmission Protokół

  • Pojawi się menu dialogowe wyszukiwania

Prosty Mail Transmission Protokół

  • Kliknij przycisk Znajdź następny

Prosty Mail Transmission Protokół

  • Znajdź wpisy

    • [funkcja poczty]
    • ; XAMPP: Nie usuwaj półkolumny, jeśli chcesz pracować z serwerem SMTP, np Mercury
    • ; SMTP = host lokalny
    • ; smtp_port = 25
    • Usuń średniki przed SMTP i smtp_port i ustaw SMTP na swoje serwer smtp i port do portu smtp. Twoje ustawienia powinny wyglądać następująco

      • SMTP = smtp.example.com
      • smtp_port = 25
      • Note ustawienia SMTP można uzyskać od dostawców usług hostingowych.
      • Jeśli serwer wymaga uwierzytelnienia, dodaj następujące wiersze.

        • auth_username = przykładowa nazwa_użytkownika@example.com
        • auth_password = przykładowe hasło
        • Zapisz nowe zmiany.
        • restart Apache serwer.

PHP Mail Przykład

Przyjrzyjmy się teraz przykładowi wysłania prostego maila.

<?php     
$to_email = 'name @ company . com';
$subject = 'Testing PHP Mail';
$message = 'This mail is sent using the PHP mail function';
$headers = 'From: noreply @ company . com';
mail($to_email,$subject,$message,$headers);
?>

Wyjście:

Prosty Mail Transmission Protokół

Uwaga: powyższy przykład przyjmuje tylko 4 obowiązkowe parametry.

Należy zastąpić powyższy fikcyjny adres e-mail prawdziwym adresem e-mail.

Dezynfekcja danych wprowadzanych przez użytkowników w wiadomościach e-mail

W powyższym przykładzie, dla uproszczenia, wykorzystano zakodowane na stałe wartości adresu e-mail i innych szczegółów w kodzie źródłowym.

Załóżmy, że musisz utworzyć formularz kontaktowy, w którym użytkownicy uzupełniają dane, a następnie wysyłają formularz.

  • Użytkownicy mogą przypadkowo lub celowo wstrzyknąć kod do nagłówków, co może skutkować wysyłaniem spamu
  • Aby zabezpieczyć swój system przed takimi atakami, możesz utworzyć niestandardową funkcję, która oczyszcza i weryfikuje wartości przed wysłaniem wiadomości e-mail.

Utwórzmy niestandardową funkcję, która weryfikuje i oczyszcza adres e-mail za pomocą wbudowanej funkcji filter_var.

Funkcja Filter_var Funkcja filter_var służy do czyszczenia i sprawdzania danych wejściowych użytkownika.

Ma następującą podstawową składnię.

<?php
filter_var($field, SANITIZATION TYPE);
?>

TUTAJ,

  • „filter_var(…)” to funkcja sprawdzania poprawności i oczyszczania
  • „$pole” to wartość pola, które ma być filtrowane.
  • „TYP SANITYZACJI” to rodzaj dezynfekcji, którą należy przeprowadzić na polu, np.:

    • FILTRUJ_WALIDUJ_E-MAIL – zwraca wartość true w przypadku prawidłowych adresów e-mail i false w przypadku nieprawidłowych adresów e-mail.
    • FILTRUJ_SANIZUJ_EMAIL – usuwa niedozwolone znaki z adresów e-mail. info\@domain.(com) zwraca info@domain.com.
    • FILTER_SANITIZE_URL – usuwa niedozwolone znaki z adresów URL. http://www.example@.comé zwraca >http://www.example@.com
    • FILTER_SANITIZE_STRING – usuwa znaczniki z wartości stringów. Jestem odważny, staje się odważny.

Poniższy kod implementuje niestandardową funkcję do wysyłania bezpiecznej poczty.

<?php 
function sanitize_my_email($field) {
    $field = filter_var($field, FILTER_SANITIZE_EMAIL);
    if (filter_var($field, FILTER_VALIDATE_EMAIL)) {
        return true;
    } else {
        return false;
    }
}
$to_email = 'name @ company . com';
$subject = 'Testing PHP Mail';
$message = 'This mail is sent using the PHP mail ';
$headers = 'From: noreply @ company. com';
//check if the email address is invalid $secure_check
$secure_check = sanitize_my_email($to_email);
if ($secure_check == false) {
    echo "Invalid input";
} else { //send email 
    mail($to_email, $subject, $message, $headers);
    echo "This email is sent using PHP Mail";
}
?>

Wyjście:

Dezynfekcja danych wprowadzanych przez użytkowników w wiadomościach e-mail

Zabezpiecz Mail

Wiadomości e-mail mogą zostać przechwycone w trakcie transmisji przez niepowołanych odbiorców.

Może to narazić treść wiadomości e-mail na ujawnienie jej niepożądanym odbiorcom.

Bezpieczna poczta rozwiązuje ten problem dzięki przesyłaniu wiadomości e-mail za pomocą protokołu HTTPS (Hypertext Transfer Protocol Secure).

HTTPS szyfruje wiadomości przed ich wysłaniem.

Podsumowanie

  • Kurs PHP wbudowana funkcja mail() służy do wysyłania poczty ze skryptów PHP
  • Kontrole walidacji i oczyszczania danych są niezbędne do wysyłania bezpiecznej poczty
  • Wbudowana w PHP funkcja filter_var() zapewnia łatwy w użyciu i skuteczny sposób oczyszczania i sprawdzania poprawności danych