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
- Kattintson a Keresés… menüre
- Megjelenik a keresési párbeszédpanel
- Kattintson a Következő keresése gombra
- 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:
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:
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.