Kuidas saata e-kirju kasutades PHP mail() funktsiooni

Mis on PHP-post?

PHP-post on sisseehitatud PHP-funktsioon, mida kasutatakse e-kirjade saatmiseks PHP-skriptidest.

Meilifunktsioon aktsepteerib järgmisi parameetreid:

  • E-posti aadress
  • Teema
  • Sõnum
  • CC või BC e-posti aadressid

  • 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 e-posti teel vastuvõtmiseks
  • Saate seda kasutada oma uudiskirja tellijatele e-kirjade saatmiseks.
  • Saate seda kasutada parooli lähtestamise linkide saatmiseks kasutajatele, kes unustavad oma paroolid
  • Saate seda kasutada aktiveerimis-/kinnituslinkide meili saatmiseks. See on kasulik kasutajate registreerimisel ja nende e-posti aadresside kinnitamisel

Miks/millal kasutada e-posti PHP-d

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 teabe, näiteks CC, BCC, lisamiseks

    • CC on koopia koopia akronüüm. Seda kasutatakse juhul, kui soovite saata koopia huvitatud isikule, st ettevõttele saadetud kaebuse meili saab saata ka koopiana kaebuste komisjonile.
    • BCC on pimekoopia akronüüm. See on sarnane CC-ga. BCC jaotises sisalduvaid e-posti aadresse teistele adressaatidele ei kuvata.

lihtne Mail Transmission Protokoll (SMTP)

PHP-mailer kasutab lihtsat Mail Transmission Protokoll (SMTP) kirjade saatmiseks.

Hostitud serveris oleksid SMTP-sätted juba määratud.

SMTP meiliseadeid saab konfigureerida PHP installikaustas olevast failist “php.ini”.

SMTP-sätete konfigureerimine kohalikus hostis Eeldades, et kasutate xampp-i Windowsis, leidke kataloogist "C:\xampp\php" fail "php.ini".

  • Avage see märkmiku või mis tahes tekstiredaktoriga. Selles näites kasutame märkmikku. Klõpsake redigeerimismenüül

lihtne Mail Transmission Protokoll

  • Klõpsake menüül Otsi…

lihtne Mail Transmission Protokoll

  • Ilmub otsimise dialoogimenüü

lihtne Mail Transmission Protokoll

  • Klõpsake nuppu Otsi järgmine

lihtne Mail Transmission Protokoll

  • Otsige üles kirjed

    • [posti funktsioon]
    • ; XAMPP: Ärge eemaldage poolveergu, kui soovite töötada näiteks SMTP-serveriga Mercury
    • ; SMTP = kohalik host
    • ; smtp_port = 25
    • Eemaldage semikoolonid enne SMTP-d ja smtp_porti ning määrake SMTP-ks oma smtp server ja port teie smtp-porti. Teie seaded peaksid välja nägema järgmised

      • SMTP = smtp.example.com
      • smtp_port = 25
      • märkused SMTP-sätted saate oma veebimajutusteenuse pakkujatelt.
      • Kui server nõuab autentimist, lisage järgmised read.

        • auth_username = näide_kasutajanimi@example.com
        • auth_password = näide_parool
        • Salvestage uued muudatused.
        • Restart Apache server.

PHP Mail Näide

Vaatame nüüd näidet, mis saadab lihtsa kirja.

<?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äljund:

lihtne Mail Transmission Protokoll

Märge: ülaltoodud näide võtab ainult 4 kohustuslikku parameetrit.

Peaksite ülaltoodud fiktiivse e-posti aadressi asendama tõelise 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 kontaktivormi, et kasutajad saaksid andmed täita ja seejärel esitada.

  • Kasutajad võivad kogemata või tahtlikult päistesse koodi sisestada, mille tulemuseks võib olla rämpsposti saatmine
  • Süsteemi kaitsmiseks selliste rünnakute eest saate luua kohandatud funktsiooni, mis puhastab ja kinnitab väärtused enne kirja saatmist.

Loome kohandatud funktsiooni, mis kinnitab ja puhastab e-posti aadressi, kasutades sisseehitatud funktsiooni filter_var.

Funktsioon Filter_var Funktsiooni filter_var kasutatakse kasutaja sisendandmete puhastamiseks ja kinnitamiseks.

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.
  • „SANITSEERIMISE TÜÜP” on põllul tehtava desinfitseerimise tüüp, näiteks;

    • FILTER_VALIDATE_EMAIL – see tagastab kehtivate e-posti aadresside puhul tõene ja valede e-posti aadresside puhul vale.
    • FILTER_SANITIZE_EMAIL – see eemaldab e-posti aadressidelt ebaseaduslikud märgid. info\@domain.(com) tagastab info@domain.com.
    • FILTER_SANITIZE_URL – see eemaldab URL-idelt ebaseaduslikud märgid. http://www.example@.comé tagastab >http://www.example@.com
    • FILTER_SANITIZE_STRING – see eemaldab stringiväärtustelt sildid. olen julge, muutub julgeks.

Allolev kood kasutab turvaliste kirjade 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 @ 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äljund:

E-posti kasutajate sisestuste desinfitseerimine

Kindlustage Mail

Soovimatud saajad võivad e-kirju edastamise ajal pealt kuulata.

See võib soovimatutele adressaatidele avaldada meili sisu.

Turvaline post lahendab selle probleemi, edastades e-kirju HTTPS-i (Hypertext Transfer Protocol Secure) kaudu.

HTTPS krüpteerib sõnumid enne nende saatmist.

kokkuvõte

  • . PHP sisseehitatud funktsiooni mail() kasutatakse kirjade saatmiseks PHP skriptidest
  • Andmete kinnitamine ja desinfitseerimine on turvalise posti saatmiseks hädavajalikud
  • PHP sisseehitatud funktsioon filter_var() pakub hõlpsasti kasutatavat ja tõhusat viisi andmete puhastamiseks ja kinnitamiseks