Kuidas saata e-kirju kasutades PHP mail() funktsiooni
โก Nutikas kokkuvรตte
PHP mail on sisseehitatud funktsioon, mis saadab e-kirju otse PHP skriptist, kasutades serveri SMTP-seadeid. See juhend kรคsitleb mail() sรผntaksit ja parameetreid, SMTP seadistamist php.ini failis, kasutaja sisendi puhastamist filter_var abil, turvalise meili saatmist ja PHP kasutamist.Mailusaldusvรครคrse kohaletoimetamise eest.

Mis on PHP-post?
PHP e-post on sisseehitatud PHP funktsioon, mida kasutatakse PHP skriptidest meilide saatmiseks.
Meilifunktsioon aktsepteerib jรคrgmisi parameetreid:
- E-posti aadress
- Teema
- Jรคta sรตnum
- Koopia vรตi salakoopia e-posti aadressid
Miks ja millal kasutada PHP meili
Postifunktsioon on kasulik paljudes olukordades:
- See on kulutรตhus viis kasutajate teavitamiseks olulistest sรผndmustest.
- Lubage kasutajatel teiega e-posti teel รผhendust vรตtta, esitades veebisaidil meiega kontaktivormi, mis saadab esitatud sisu meili teel.
- Arendajad saavad seda kasutada sรผsteemivigade saamiseks e-posti teel.
- Saate seda kasutada oma uudiskirja tellijatele e-kirjade saatmiseks.
- Saate seda kasutada parooli lรคhtestamise linkide saatmiseks kasutajatele, kes on oma parooli unustanud.
- Saate seda kasutada aktiveerimis- ja kinnituslinkide saatmiseks e-posti teel. See on kasulik kasutajate registreerimisel ja nende e-posti aadresside kinnitamisel.
Kirjade saatmine PHP-ga
PHP meilifunktsioonil on jรคrgmine pรตhisรผntaks.
<?php mail($to_email_address,$subject,$message,[$headers],[$parameters]); ?>
SIIN,
- "$to_email_address" on meili saaja e-posti aadress
- "$subject" on meili teema
- "$message" on sรตnum, mis tuleb saata.
- โ[$headers]โ on valikuline; seda saab kasutada sellise teabe lisamiseks nagu koopia ja pimekoopia.
- CC on lรผhend sรตnadest carbon copy (koopia). Seda kasutatakse siis, kui soovite saata koopia huvitatud isikule, st ettevรตttele saadetud kaebuse e-kirja saab saata koopiana ka kaebuste komisjonile.
- BCC on lรผhend sรตnadest blind carbon copy (peidetud koopia). See sarnaneb CC-ga, kuid BCC jaotises olevad e-posti aadressid ei ole teistele saajatele nรคhtavad.
lihtne Mail Transmission Protokoll (SMTP)
PHP meil kasutab lihtsat Mail Transmission Protokoll (SMTP) kirjade saatmiseks.
Hostitud serveris peaksid SMTP-seaded olema juba mรครคratud.
SMTP-posti seadeid saab konfigureerida PHP installikaustas olevas failis โphp.iniโ.
SMTP-sรคtete konfigureerimiseks oma localhostis, eeldades, et kasutate XAMPP-i Windows, leidke fail โphp.iniโ kataloogist โC:\xampp\phpโ.
- Ava see Notepadi vรตi mรตne muu tekstiredaktori abil. Selles nรคites kasutame Notepadi. โโKlรตpsa menรผรผl Redigeeri.
- Klรตpsake menรผรผd โLeiaโฆโ
- Ilmub otsingudialoog
- Klรตpsake nupul Leia jรคrgmine
Leidke kirjed alt [mail function]. Vaikimisi nรคevad read tavaliselt vรคlja sellised:
- ; SMTP = kohalik host
- ; smtp_port = 25
Eemaldage semikoolonid enne SMTP ja smtp_port ning mรครคrake SMTP oma SMTP server ja port oma SMTP-pordile. Teie seaded peaksid vรคlja nรคgema jรคrgmised:
- SMTP = smtp.example.com
- smtp_port = 25
Mรคrkus: SMTP-seaded saab oma veebimajutusteenuse pakkujalt. Kui server nรตuab autentimist, lisage jรคrgmised read:
- auth_username = nรคide_kasutajanimi@example.com
- auth_password = nรคide_parool
Salvestage uued muudatused ja taaskรคivitage Apache server.
PHP Mail Nรคide
Vaatame nรผรผd nรคidet, mis saadab lihtsa kirja.
<?php $to_email = 'name@example.com'; $subject = 'Testing PHP Mail'; $message = 'This mail is sent using the PHP mail function'; $headers = 'From: noreply@example.com'; mail($to_email,$subject,$message,$headers); ?>
Vรคljund:
Mรคrkus: รผlaltoodud nรคites on kasutatud ainult nelja kohustuslikku parameetrit. Peaksite รผlaltoodud fiktiivse e-posti aadressi asendama tegeliku e-posti aadressiga.
E-posti kasutajate sisestuste desinfitseerimine
รlaltoodud nรคites kasutatakse e-posti aadressi lรคhtekoodis kodeeritud vรครคrtusi ja muid รผksikasju lihtsuse huvides.
Oletame, et peate looma meiega รผhenduse vรตtmise vormi, kus kasutajad tรคidavad andmed ja seejรคrel esitavad.
- Kasutajad saavad kogemata vรตi tahtlikult pรคistesse koodi sisestada, mis vรตib viia rรคmpsposti saatmiseni.
- Sรผsteemi kaitsmiseks selliste rรผnnakute eest saate luua kohandatud funktsiooni, mis puhastab ja kinnitab vรครคrtused enne kirja saatmist.
Loome kohandatud funktsiooni, mis valideerib ja puhastab e-posti aadressi sisseehitatud funktsiooni filter_var abil. Funktsiooni filter_var kasutatakse kasutaja sisestatud andmete puhastamiseks ja valideerimiseks.
Sellel on jรคrgmine pรตhisรผntaks.
<?php filter_var($field, SANITIZATION_TYPE); ?>
SIIN,
- โfilter_var(โฆ)โ on valideerimis- ja desinfitseerimisfunktsioon
- "$field" on filtreeritava vรคlja vรครคrtus.
- โSANITIZATION_TYPEโ on vรคljakul tehtava desinfitseerimise tรผรผp, nรคiteks:
- FILTER_VALIDATE_EMAIL โ tagastab kehtivate e-posti aadresside korral vรครคrtuse โtrueโ ja kehtetute e-posti aadresside korral vรครคrtuse โfalseโ.
- FILTER_SANITIZE_EMAIL โ eemaldab e-posti aadressidest lubamatud tรคhemรคrgid, nii et juhuslike tรคhemรคrkidega aadress taandatakse kujule info@domain.com.
- FILTER_SANITIZE_URL โ eemaldab keelatud tรคhemรคrgid URLs, jรคttes puhta aadressi, nรคiteks https://www.example.com.
- FILTER_SANITIZE_STRING โ eemaldab stringvรครคrtustelt sildid, seega โam boldโ muutub โam boldiksโ. Pange tรคhele, et see filter on PHP 8.1-s aegunud; kasutage selle asemel htmlspecialchars().
Allolev kood kasutab turvalise meili saatmiseks kohandatud funktsiooni.
<?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@example.com'; $subject = 'Testing PHP Mail'; $message = 'This mail is sent using the PHP mail function'; $headers = 'From: noreply@example.com'; // check if the email address is invalid $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รคljund:
Kindlustage Mail
Soovimatud saajad vรตivad e-kirju edastamise ajal pealt kuulata.
See vรตib e-kirja sisu soovimatutele adressaatidele paljastada.
Turvaline e-post lahendab selle probleemi transmite-kirjade saatmine krรผptitud รผhenduse kaudu SSL-i vรตi TLS-i abil, nรคiteks SMTP SSL-i kaudu pordil 465 vรตi STARTTLS pordil 587.
Krรผptimine segab sรตnumi enne saatmist, nii et ainult adressaadi meiliserver saab seda lugeda.
PHPMailer: Parem alternatiiv mail()-ile
Pรคris rakenduste jaoks kasutab enamik arendajaid PHP-dMailer teeki toore mail() funktsiooni asemel. PHPMailautentib vรคlise SMTP-serveriga, mis parandab oluliselt edastatavust ning muudab manuste ja HTML-e-kirjade saatmise lihtsaks.
Paigalda see Composeriga ja saada seejรคrel e-kiri autentitud ja krรผptitud SMTP-รผhenduse kaudu, nagu allpool nรคidatud.
<?php use PHPMailer\PHPMailer\PHPMailer; require 'vendor/autoload.php'; $mail = new PHPMailer(true); $mail->isSMTP(); $mail->Host = 'smtp.example.com'; $mail->SMTPAuth = true; $mail->Username = 'user@example.com'; $mail->Password = 'secret'; $mail->SMTPSecure = 'tls'; $mail->Port = 587; $mail->setFrom('noreply@example.com', 'My App'); $mail->addAddress('name@example.com'); $mail->Subject = 'Testing PHPMailer'; $mail->Body = 'This email is sent using PHPMailer over SMTP'; $mail->send(); ?>
Vรตrreldes mail()-ga, PHPMailer pakub sulle SMTP autentimist, sisseehitatud krรผptimist, manuste tuge ja selgemat veakรคsitlust, mistรตttu on see soovitatav valik tootmismeilide jaoks.






