Hogyan küldjünk e-mailt a PHP mail() függvény segítségével

Mi az a PHP mail?

A PHP mail a PHP beépített funkciója, amely e-mailek küldésére szolgál PHP szkriptekből.

A levelezési funkció a következő paramétereket fogadja el:

  • E-mail cím
  • Tárgy
  • Üzenet
  • CC vagy BC e-mail címek

  • Ez egy költséghatékony módja a felhasználók értesítésének a fontos eseményekről.
  • Engedje meg a felhasználóknak, hogy e-mailben kapcsolatba léphessenek Önnel egy kapcsolatfelvételi űrlap kitöltésével azon a webhelyen, amely e-mailben elküldi a megadott tartalmat.
  • A fejlesztők arra használhatják, hogy e-mailben megkapják a rendszerhibákat
  • Használhatja hírlevélre feliratkozói e-mailek küldésére.
  • Használhatja jelszó-visszaállítási hivatkozások küldésére azoknak a felhasználóknak, akik elfelejtették jelszavukat
  • Használhatja aktiváló/megerősítő linkek e-mailben történő elküldésére. Ez hasznos a felhasználók regisztrálásakor és e-mail címük ellenőrzésekor

Miért/mikor használjuk a levelező PHP-t

Levélküldés PHP-vel

A PHP levelező funkciója a következő alapvető szintaxissal rendelkezik

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

ITT,

  • A „$to_email_address” a levél címzettjének e-mail címe
  • A „$subject” az e-mail tárgya
  • A „$message” az elküldendő üzenet.
  • A „[$headers]” opcionális, olyan információk megadására használható, mint a CC, BCC

    • A CC a másolat rövidítése. Akkor használatos, ha másolatot szeretne küldeni egy érdeklődőnek, azaz egy cégnek küldött panaszos e-mailt CC-ként is elküldheti a panaszbizottságnak.
    • A BCC a vakmásolat rövidítése. Hasonló a CC-hez. A BCC részben szereplő e-mail címek nem jelennek meg a többi címzett számára.

Egyszerű Mail Transmission Protokoll (SMTP)

A PHP levelezője a Simple-t használja Mail Transmission Protokoll (SMTP) a levelek küldéséhez.

Egy hosztolt szerveren az SMTP-beállítások már be lettek állítva.

Az SMTP levelezés beállításai a PHP telepítési mappájában található „php.ini” fájlból konfigurálhatók.

SMTP beállítások konfigurálása a helyi gépen Feltéve, hogy az xampp-ot Windowson használja, keresse meg a „php.ini” fájlt a „C:\xampp\php” könyvtárban.

  • Nyissa meg a jegyzettömbbel vagy bármilyen szövegszerkesztővel. Ebben a példában a Jegyzettömböt fogjuk használni. Kattintson a szerkesztés menüre

Egyszerű Mail Transmission Protokoll

  • Kattintson a Keresés… menüre

Egyszerű Mail Transmission Protokoll

  • Megjelenik a keresési párbeszédpanel

Egyszerű Mail Transmission Protokoll

  • Kattintson a Következő keresése gombra

Egyszerű Mail Transmission Protokoll

  • Keresse meg a bejegyzéseket

    • [mail funkció]
    • ; XAMPP: Ne távolítsa el a féloszlopot, ha olyan SMTP-kiszolgálóval szeretne dolgozni, mint például Mercury
    • ; SMTP = localhost
    • ; smtp_port = 25
    • Távolítsa el a pontosvesszőket az SMTP és az smtp_port előtt, és állítsa be az SMTP-t a saját értékére smtp szerver és az smtp porthoz vezető port. A beállításoknak a következőképpen kell kinézniük

      • SMTP = smtp.example.com
      • smtp_port = 25
      • Megjegyzések az SMTP beállításokat a webtárhely-szolgáltatóktól szerezheti be.
      • Ha a szerver hitelesítést igényel, adja hozzá a következő sorokat.

        • auth_username = example_username@example.com
        • auth_password = példa_jelszó
        • Mentse el az új módosításokat.
        • Újraindítás Apache szervert.

PHP Mail Példa

Nézzünk most egy példát, amely egyszerű e-mailt küld.

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

output:

Egyszerű Mail Transmission Protokoll

Jegyzet: a fenti példa csak a 4 kötelező paramétert veszi figyelembe.

Cserélje le a fenti fiktív e-mail címet egy valós e-mail címre.

Az e-mail felhasználói bemenetek fertőtlenítése

A fenti példa kemény kódolt értékeket használ a forráskódban az e-mail címhez és egyéb részletekhez az egyszerűség kedvéért.

Tételezzük fel, hogy létre kell hoznia egy kapcsolatfelvételi űrlapot, hogy a felhasználók kitöltsék az adatokat, majd elküldjék.

  • A felhasználók véletlenül vagy szándékosan kódot szúrhatnak be a fejlécekbe, ami spam levélküldéshez vezethet
  • A rendszer ilyen támadásokkal szembeni védelme érdekében létrehozhat egy egyéni funkciót, amely megtisztítja és ellenőrzi az értékeket a levél elküldése előtt.

Hozzunk létre egy egyéni függvényt, amely a beépített filter_var függvény segítségével ellenőrzi és megtisztítja az e-mail címet.

Filter_var függvény A filter_var függvény a felhasználói bemeneti adatok tisztítására és érvényesítésére szolgál.

A következő alapvető szintaxissal rendelkezik.

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

ITT,

  • A „filter_var(…)” az érvényesítési és fertőtlenítési funkció
  • A „$field” a szűrendő mező értéke.
  • A „SZERELÉS TÍPUSA” a terepen végrehajtandó fertőtlenítés típusa, mint pl.

    • FILTER_VALIDATE_EMAIL – érvényes e-mail címeknél igaz, érvénytelen e-mail címeknél hamis értéket ad vissza.
    • FILTER_SANITIZE_EMAIL – eltávolítja az illegális karaktereket az e-mail címekből. Az info\@domain.(com) az info@domain.com értéket adja vissza.
    • FILTER_SANITIZE_URL – eltávolítja az illegális karaktereket az URL-ekből. A http://www.example@.comé értéke >http://www.example@.com
    • FILTER_SANITIZE_STRING – eltávolítja a címkéket a karakterlánc értékekből. am bold am merész lesz.

Az alábbi kód egyedi funkciót használ a biztonságos levelek küldésére.

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

output:

Az e-mail felhasználói bemenetek fertőtlenítése

Biztos Mail

Az e-maileket az átvitel során nem kívánt címzettek elfoghatják.

Ezzel az e-mail tartalma nem kívánt címzettek elé kerülhet.

A biztonságos levelezés megoldja ezt a problémát az e-mailek továbbítása a Hypertext Transfer Protocol Secure (HTTPS) protokollon keresztül.

A HTTPS titkosítja az üzeneteket, mielőtt elküldené őket.

Összegzésként

  • A PHP A beépített mail() függvény a PHP szkriptekből származó levelek küldésére szolgál
  • Az adatok érvényesítésének és fertőtlenítésének ellenőrzése elengedhetetlen a biztonságos levelek küldéséhez
  • A PHP beépített filter_var() függvénye egy könnyen használható és hatékony módot biztosít az adatok fertőtlenítésére és érvényesítésére.