Jak odeslat e-mail pomocí funkce PHP mail().

Co je to PHP mail?

PHP mail je vestavěná funkce PHP, která se používá k odesílání e-mailů z PHP skriptů.

Funkce pošty přijímá následující parametry:

  • E-mail
  • Předmět
  • Zpráva
  • E-mailové adresy CC nebo BC

  • Je to nákladově efektivní způsob, jak upozornit uživatele na důležité události.
  • Umožněte uživatelům kontaktovat vás prostřednictvím e-mailu poskytnutím kontaktního formuláře na webové stránce, která zasílá e-mailem poskytnutý obsah.
  • Vývojáři jej mohou použít k přijímání systémových chyb e-mailem
  • Můžete jej použít k zasílání e-mailů odběratelům newsletteru.
  • Můžete jej použít k odesílání odkazů pro resetování hesla uživatelům, kteří zapomenou svá hesla
  • Můžete jej použít k zasílání aktivačních/potvrzujících odkazů e-mailem. To je užitečné při registraci uživatelů a ověřování jejich e-mailových adres

Proč/kdy používat mail PHP

Odesílání pošty pomocí PHP

Funkce pošty PHP má následující základní syntaxi

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

TADY,

  • „$to_email_address“ je e-mailová adresa příjemce pošty
  • „$předmět“ je předmět e-mailu
  • „$message“ je zpráva, která má být odeslána.
  • „[$headers]“ je nepovinné, lze jej použít k zahrnutí informací, jako je CC, BCC

    • CC je zkratka pro uhlíkovou kopii. Používá se, když chcete poslat kopii zainteresované osobě, tj. reklamační e-mail zaslaný společnosti lze také poslat jako CC radě pro stížnosti.
    • BCC je zkratka pro slepou kopii. Je to podobné jako CC. E-mailové adresy uvedené v sekci BCC se ostatním příjemcům nezobrazí.

prostý Mail Transmission protokol (SMTP)

PHP mailer používá Simple Mail Transmission Protokol (SMTP) pro odesílání pošty.

Na hostovaném serveru by již bylo nastavení SMTP nastaveno.

Nastavení pošty SMTP lze konfigurovat ze souboru „php.ini“ v instalační složce PHP.

Konfigurace nastavení SMTP na vašem localhost Za předpokladu, že používáte xampp v systému Windows, vyhledejte „php.ini“ v adresáři „C:\xampp\php“.

  • Otevřete jej pomocí poznámkového bloku nebo libovolného textového editoru. V tomto příkladu použijeme poznámkový blok. Klikněte na nabídku úprav

prostý Mail Transmission Protokol

  • Klikněte na nabídku Najít…

prostý Mail Transmission Protokol

  • Zobrazí se dialogové okno hledání

prostý Mail Transmission Protokol

  • Klikněte na tlačítko Najít další

prostý Mail Transmission Protokol

  • Najděte položky

    • [funkce pošty]
    • ; XAMPP: Pokud chcete pracovat s SMTP serverem, neodstraňujte sloupec semi Mercury
    • ; SMTP = localhost
    • ; smtp_port = 25
    • Odstraňte středníky před SMTP a smtp_port a nastavte SMTP na svůj smtp server a port na váš smtp port. Vaše nastavení by mělo vypadat následovně

      • SMTP = smtp.example.com
      • smtp_port = 25
      • Pozor nastavení SMTP lze získat od poskytovatelů webhostingu.
      • Pokud server vyžaduje ověření, přidejte následující řádky.

        • auth_username = example_username@example.com
        • auth_password = příklad_hesla
        • Uložte nové změny.
        • Restart Apache serveru.

PHP Mail Příklad

Podívejme se nyní na příklad, který odešle jednoduchý mail.

<?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);
?>

Výstup:

prostý Mail Transmission Protokol

Poznámka: výše uvedený příklad bere pouze 4 povinné parametry.

Výše uvedenou fiktivní e-mailovou adresu byste měli nahradit skutečnou e-mailovou adresou.

Čištění e-mailových uživatelských vstupů

Výše uvedený příklad používá pro zjednodušení pevně zakódované hodnoty ve zdrojovém kódu pro e-mailovou adresu a další podrobnosti.

Předpokládejme, že musíte vytvořit kontaktní formulář pro uživatele, kteří vyplní údaje a poté odešle.

  • Uživatelé mohou náhodně nebo úmyslně vložit kód do záhlaví, což může vést k rozesílání spamu
  • Abyste ochránili svůj systém před takovými útoky, můžete vytvořit vlastní funkci, která dezinfikuje a ověřuje hodnoty před odesláním pošty.

Pojďme vytvořit vlastní funkci, která ověří a vyčistí e-mailovou adresu pomocí vestavěné funkce filter_var.

Funkce Filter_var Funkce filter_var se používá k dezinfekci a ověření vstupních dat uživatele.

Má následující základní syntaxi.

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

TADY,

  • „filter_var(…)“ je funkce ověření a dezinfekce
  • „$field“ je hodnota pole, které má být filtrováno.
  • „TYP SANITIZACE“ je typ sanitace, která má být provedena na poli, jako je;

    • FILTER_VALIDATE_EMAIL – vrací true pro platné e-mailové adresy a false pro neplatné e-mailové adresy.
    • FILTER_SANITIZE_EMAIL – odstraňuje z e-mailových adres nepovolené znaky. info\@domena.(com) vrátí info@domena.com.
    • FILTER_SANITIZE_URL – odstraňuje z adres URL nepovolené znaky. http://www.example@.comé vrátí >http://www.example@.com
    • FILTER_SANITIZE_STRING – odebere tagy z hodnot řetězců. jsem tučný se stává jsem tučný.

Níže uvedený kód implementuje vlastní funkci pro odesílání zabezpečené pošty.

<?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";
}
?>

Výstup:

Čištění e-mailových uživatelských vstupů

Zajistěte si Mail

E-maily mohou být během přenosu zachyceny nezamýšlenými příjemci.

To může vystavit obsah e-mailu nezamýšleným příjemcům.

Zabezpečená pošta řeší tento problém přenosem e-mailů pomocí protokolu HTTPS (Hypertext Transfer Protocol Secure).

HTTPS šifruje zprávy před jejich odesláním.

Shrnutí

  • Jedno PHP vestavěná funkce mail() se používá k odesílání pošty z PHP skriptů
  • Pro odesílání zabezpečené pošty je nezbytná kontrola platnosti a dezinfekce dat
  • Vestavěná funkce PHP filter_var() poskytuje snadno použitelný a efektivní způsob provádění dezinfekce a ověřování dat