Hvordan sende e-post ved hjelp av PHP mail()-funksjonen
Hva er PHP-post?
PHP-e-post er den innebygde PHP-funksjonen som brukes til å sende e-post fra PHP-skript.
E-postfunksjonen godtar følgende parametere:
- Epostadresse
- Emne
- Melding
- CC eller BC e-postadresser
- Det er en kostnadseffektiv måte å varsle brukere om viktige hendelser.
- La brukere kontakte deg via e-post ved å oppgi et kontaktskjema på nettstedet som sender det oppgitte innholdet på e-post.
- Utviklere kan bruke den til å motta systemfeil på e-post
- Du kan bruke den til å sende e-post til abonnentene på nyhetsbrevet.
- Du kan bruke den til å sende lenker for tilbakestilling av passord til brukere som glemmer passordene sine
- Du kan bruke den til å sende e-post til aktiverings-/bekreftelseslenker. Dette er nyttig når du registrerer brukere og bekrefter e-postadressene deres
Hvorfor/når skal du bruke e-posten PHP
Sender e-post med PHP
PHP-e-postfunksjonen har følgende grunnleggende syntaks
<?php mail($to_email_address,$subject,$message,[$headers],[$parameters]); ?>
HER,
- "$to_email_address" er e-postadressen til e-postmottakeren
- "$subject" er e-postemnet
- "$message" er meldingen som skal sendes.
- "[$headers]" er valgfritt, den kan brukes til å inkludere informasjon som CC, BCC
- CC er forkortelsen for karbonkopi. Den brukes når du ønsker å sende en kopi til en interessert person, dvs. en klage-e-post sendt til en bedrift kan også sendes som CC til klagenemnda.
- BCC er akronymet for blind karbonkopi. Det ligner på CC. E-postadressene som er inkludert i BCC-delen vil ikke bli vist til de andre mottakerne.
Enkelt Mail Transmission Protokoll (SMTP)
PHP mailer bruker Simple Mail Transmission Protokoll (SMTP) for å sende e-post.
På en vertsbasert server ville SMTP-innstillingene allerede vært angitt.
SMTP-postinnstillingene kan konfigureres fra "php.ini"-filen i PHP-installasjonsmappen.
Konfigurere SMTP-innstillinger på din lokale vert Forutsatt at du bruker xampp på Windows, finn "php.ini" i katalogen "C:\xampp\php".
- Åpne den ved å bruke notisblokk eller et hvilket som helst tekstredigeringsprogram. Vi vil bruke notisblokk i dette eksemplet. Klikk på redigeringsmenyen
- Klikk på Finn...-menyen
- Finn-dialogmenyen vises
- Klikk på Finn neste-knappen
- Finn oppføringene
- [e-postfunksjon]
- ; XAMPP: Ikke fjern semi-kolonnen hvis du vil jobbe med en SMTP-server som Mercury
- ; SMTP = lokal vert
- ; smtp_port = 25
- Fjern semikolonene før SMTP og smtp_port og sett SMTP til din smtp-server og porten til smtp-porten. Innstillingene dine skal se ut som følger
- SMTP = smtp.example.com
- smtp_port = 25
- Merknader SMTP-innstillingene kan fås fra webhotellleverandørene dine.
- Hvis serveren krever autentisering, legg til følgende linjer.
- auth_brukernavn = eksempel_brukernavn@example.com
- auth_password = eksempel_passord
- Lagre de nye endringene.
- Restart Apache server.
PHP Mail Eksempel
La oss nå se på et eksempel som sender en enkel e-post.
<?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); ?>
Utgang:
OBS: eksemplet ovenfor tar bare de 4 obligatoriske parameterne.
Du bør erstatte den fiktive e-postadressen ovenfor med en ekte e-postadresse.
Desinfisering av brukerinndata fra e-post
Eksemplet ovenfor bruker hardkodede verdier i kildekoden for e-postadressen og andre detaljer for enkelhets skyld.
La oss anta at du må opprette et kontakt oss-skjema for brukere å fylle ut detaljene og deretter sende inn.
- Brukere kan ved et uhell eller med vilje injisere kode i overskriftene som kan resultere i å sende søppelpost
- For å beskytte systemet ditt mot slike angrep, kan du opprette en egendefinert funksjon som renser og validerer verdiene før e-posten sendes.
La oss lage en tilpasset funksjon som validerer og renser e-postadressen ved å bruke filter_var innebygd funksjon.
Filter_var-funksjonen filter_var-funksjonen brukes til å rense og validere brukerinndataene.
Den har følgende grunnleggende syntaks.
<?php filter_var($field, SANITIZATION TYPE); ?>
HER,
- "filter_var(...)" er validerings- og desinfiseringsfunksjonen
- "$field" er verdien av feltet som skal filtreres.
- "SANITISERINGSTYPE" er typen sanitisering som skal utføres på feltet, for eksempel;
- FILTER_VALIDATE_EMAIL – den returnerer true for gyldige e-postadresser og false for ugyldige e-postadresser.
- FILTER_SANITIZE_EMAIL – den fjerner ulovlige tegn fra e-postadresser. info\@domene.(com) returnerer info@domene.com.
- FILTER_SANITIZE_URL – den fjerner ulovlige tegn fra URL-er. http://www.example@.comé returnerer >http://www.example@.com
- FILTER_SANITIZE_STRING – den fjerner tagger fra strengverdier. am bold blir am bold.
Koden nedenfor implementerer bruker en tilpasset funksjon for å sende sikker e-post.
<?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"; } ?>
Utgang:
Sikre Mail
E-poster kan bli fanget opp under overføring av utilsiktede mottakere.
Dette kan eksponere innholdet i e-posten for utilsiktede mottakere.
Sikker e-post løser dette problemet ved å overføre e-post via Hypertext Transfer Protocol Secure (HTTPS).
HTTPS krypterer meldinger før de sendes.
Sammendrag
- Ocuco PHP innebygd funksjon mail() brukes til å sende e-post fra PHP-skript
- Validerings- og sanitetskontroller av dataene er avgjørende for å sende sikker post
- PHP innebygde funksjon filter_var() gir en enkel å bruke og effektiv måte å utføre datasanering og validering på