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

Enkelt Mail Transmission Protokoll

  • Klikk på Finn...-menyen

Enkelt Mail Transmission Protokoll

  • Finn-dialogmenyen vises

Enkelt Mail Transmission Protokoll

  • Klikk på Finn neste-knappen

Enkelt Mail Transmission Protokoll

  • 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:

Enkelt Mail Transmission Protokoll

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:

Desinfisering av brukerinndata fra e-post

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å