Sådan sender du e-mail ved hjælp af PHP-mail()-funktionen
Hvad er PHP-mail?
PHP-mail er den indbyggede PHP-funktion, der bruges til at sende e-mails fra PHP-scripts.
Mail-funktionen accepterer følgende parametre:
- E-mail adresse
- Emne
- Besked
- CC eller BC e-mailadresser
- Det er en omkostningseffektiv måde at underrette brugere om vigtige begivenheder.
- Lad brugere kontakte dig via e-mail ved at angive en kontaktformular på webstedet, der sender det leverede indhold via e-mail.
- Udviklere kan bruge det til at modtage systemfejl via e-mail
- Du kan bruge det til at sende e-mail til dine nyhedsbrevsabonnenter.
- Du kan bruge den til at sende links til nulstilling af adgangskode til brugere, der glemmer deres adgangskoder
- Du kan bruge det til at e-maile aktiverings-/bekræftelseslinks. Dette er nyttigt, når du registrerer brugere og bekræfter deres e-mailadresser
Hvorfor/Hvornår skal man bruge mailen PHP
Sender mail ved hjælp af PHP
PHP-mailfunktionen har følgende grundlæggende syntaks
<?php mail($to_email_address,$subject,$message,[$headers],[$parameters]); ?>
HER,
- "$to_email_address" er e-mail-adressen på mailmodtageren
- "$subject" er e-mailens emne
- "$message" er den besked, der skal sendes.
- "[$headers]" er valgfrit, det kan bruges til at inkludere information som CC, BCC
- CC er forkortelsen for carbon copy. Det bruges, når du ønsker at sende en kopi til en interesseret person, dvs. en klagemail sendt til en virksomhed kan også sendes som CC til klagenævnet.
- BCC er forkortelsen for blind carbon copy. Det ligner CC. De e-mailadresser, der er inkluderet i BCC-sektionen, vil ikke blive vist til de andre modtagere.
Simpelt Mail Transmission Protokol (SMTP)
PHP mailer bruger Simple Mail Transmission Protokol (SMTP) til at sende post.
På en hostet server ville SMTP-indstillingerne allerede være indstillet.
SMTP-mail-indstillingerne kan konfigureres fra filen "php.ini" i PHP-installationsmappen.
Konfiguration af SMTP-indstillinger på din lokale vært Hvis du antager, at du bruger xampp på Windows, skal du finde "php.ini" i mappen "C:\xampp\php".
- Åbn den ved hjælp af notesblok eller en hvilken som helst teksteditor. Vi vil bruge notesblok i dette eksempel. Klik på redigeringsmenuen
- Klik på menuen Find...
- Find dialogmenuen vises
- Klik på knappen Find næste
- Find posterne
- [mail funktion]
- ; XAMPP: Fjern ikke semi-kolonnen, hvis du vil arbejde med en SMTP-server som Mercury
- ; SMTP = lokal vært
- ; smtp_port = 25
- Fjern semikolonerne før SMTP og smtp_port og indstil SMTP til din smtp-server og porten til din smtp-port. Dine indstillinger skal se ud som følger
- SMTP = smtp.example.com
- smtp_port = 25
- Bemærk SMTP-indstillingerne kan fås fra dine webhostingudbydere.
- Hvis serveren kræver godkendelse, skal du tilføje følgende linjer.
- auth_brugernavn = eksempel_brugernavn@eksempel.com
- auth_password = eksempel_adgangskode
- Gem de nye ændringer.
- Genstart Apache serveren.
PHP Mail Eksempel
Lad os nu se på et eksempel, der sender en simpel mail.
<?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:
Bemærk: ovenstående eksempel tager kun de 4 obligatoriske parametre.
Du bør erstatte ovenstående fiktive e-mailadresse med en rigtig e-mailadresse.
Rengøring af e-mailbrugeres input
Ovenstående eksempel bruger hårdkodede værdier i kildekoden til e-mailadressen og andre detaljer for nemheds skyld.
Lad os antage, at du skal oprette en kontaktformular, så brugere kan udfylde detaljerne og derefter indsende.
- Brugere kan ved et uheld eller med vilje injicere kode i overskrifterne, hvilket kan resultere i at sende spam-mail
- For at beskytte dit system mod sådanne angreb kan du oprette en brugerdefineret funktion, der renser og validerer værdierne, før mailen sendes.
Lad os skabe en brugerdefineret funktion, der validerer og renser e-mail-adressen ved hjælp af den indbyggede filter_var-funktion.
Filter_var-funktion Filter_var-funktionen bruges til at rense og validere brugerinputdata.
Det har følgende grundlæggende syntaks.
<?php filter_var($field, SANITIZATION TYPE); ?>
HER,
- "filter_var(...)" er validerings- og desinficeringsfunktionen
- "$field" er værdien af det felt, der skal filtreres.
- "SANITISERINGSTYPE" er den type desinficering, der skal udføres på marken, såsom;
- FILTER_VALIDATE_EMAIL – den returnerer true for gyldige e-mailadresser og falsk for ugyldige e-mailadresser.
- FILTER_SANITIZE_EMAIL – det fjerner ulovlige tegn fra e-mailadresser. info\@domain.(com) returnerer info@domain.com.
- FILTER_SANITIZE_URL – det fjerner ulovlige tegn fra URL'er. http://www.example@.comé returnerer >http://www.example@.com
- FILTER_SANITIZE_STRING – det fjerner tags fra strengværdier. am bold bliver am bold.
Koden nedenfor implementerer bruger en brugerdefineret funktion til at sende sikker mail.
<?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:
Sikkert Mail
E-mails kan opsnappes under transmission af utilsigtede modtagere.
Dette kan udsætte indholdet af e-mailen for utilsigtede modtagere.
Sikker mail løser dette problem ved at sende e-mails via Hypertext Transfer Protocol Secure (HTTPS).
HTTPS krypterer meddelelser, før de sendes.
Resumé
- PHP indbygget funktion mail() bruges til at sende mail fra PHP-scripts
- Validering og desinficering af data er afgørende for at sende sikker post
- Den indbyggede PHP-funktion filter_var() giver en nem at bruge og effektiv måde at udføre datasanering og validering på