Hoe u e-mail verzendt met behulp van de PHP mail()-functie
Wat is PHP-mail?
PHP mail is de ingebouwde PHP-functie die wordt gebruikt om e-mails te versturen via PHP-scripts.
De mailfunctie accepteert de volgende parameters:
- E-mailadres
- Onderwerp
- Bericht
- CC- of BC-e-mailadressen
- Het is een kosteneffectieve manier om gebruikers op de hoogte te stellen van belangrijke gebeurtenissen.
- Geef gebruikers de mogelijkheid om via e-mail contact met u op te nemen door een contactformulier op de website te plaatsen waarmee de verstrekte inhoud per e-mail wordt verzonden.
- Ontwikkelaars kunnen het gebruiken om systeemfouten per e-mail te ontvangen
- U kunt het gebruiken om e-mails te sturen naar uw nieuwsbriefabonnees.
- U kunt het gebruiken om links voor het opnieuw instellen van wachtwoorden te sturen naar gebruikers die hun wachtwoord vergeten zijn
- U kunt het gebruiken om activerings-/bevestigingslinks te e-mailen. Dit is handig bij het registreren van gebruikers en het verifiëren van hun e-mailadressen
Waarom/wanneer je de mail PHP moet gebruiken
E-mail verzenden met PHP
De PHP-mailfunctie heeft de volgende basissyntaxis
<?php mail($to_email_address,$subject,$message,[$headers],[$parameters]); ?>
HIER,
- “$to_email_address” is het e-mailadres van de ontvanger van de e-mail
- “$subject” is het e-mailonderwerp
- “$message” is het bericht dat moet worden verzonden.
- “[$headers]” is optioneel en kan worden gebruikt om informatie zoals CC en BCC op te nemen
- CC is de afkorting voor carbon copy. Het wordt gebruikt als u een kopie wilt sturen naar een geïnteresseerde persoon, bijvoorbeeld een klachtenmail die naar een bedrijf is gestuurd, kan ook als CC naar de klachtencommissie worden gestuurd.
- BCC is de afkorting voor blind carbon copy. Het is vergelijkbaar met CC. De e-mailadressen die in de BCC-sectie staan, worden niet aan de andere ontvangers getoond.
Eenvoudig Mail Transmission Protocol (SMTP)
PHP-mailer gebruikt Simple Mail Transmission Protocol (SMTP) om e-mail te verzenden.
Op een gehoste server zouden de SMTP-instellingen al zijn ingesteld.
De SMTP-mailinstellingen kunnen worden geconfigureerd via het bestand “php.ini” in de PHP-installatiemap.
SMTP-instellingen configureren op uw localhost Ervan uitgaande dat u xampp op Windows gebruikt, zoekt u naar “php.ini” in de map “C:\xampp\php”.
- Open het met Kladblok of een andere teksteditor. In dit voorbeeld gebruiken we Kladblok. Klik op het bewerkingsmenu
- Klik op het menu Zoeken...
- Het zoekdialoogmenu verschijnt
- Klik op de knop Volgende zoeken
- Zoek de vermeldingen
- [mailfunctie]
- ; XAMPP: Verwijder de halve kolom niet als u met een SMTP-server wilt werken, zoals Mercury
- ; SMTP = localhost
- ; smtp_poort = 25
- Verwijder de puntkomma's vóór SMTP en smtp_port en stel de SMTP in op uw smtp-server en de poort naar uw smtp-poort. Uw instellingen zouden er als volgt uit moeten zien
- SMTP = smtp.voorbeeld.com
- smtp_poort = 25
- Note De SMTP-instellingen kunt u opvragen bij uw webhostingproviders.
- Als de server authenticatie vereist, voeg dan de volgende regels toe.
- auth_gebruikersnaam = voorbeeld_gebruikersnaam@voorbeeld.com
- auth_password = voorbeeld_wachtwoord
- Sla de nieuwe wijzigingen op.
- Herstart apache server.
PHP Mail Voorbeeld
Laten we nu eens kijken naar een voorbeeld van het versturen van een eenvoudige e-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:
Opmerking: In het bovenstaande voorbeeld zijn alleen de vier verplichte parameters opgenomen.
U dient het bovenstaande fictieve e-mailadres te vervangen door een echt e-mailadres.
E-mailgebruikersinvoer opschonen
In het bovenstaande voorbeeld worden voor het gemak hard gecodeerde waarden in de broncode gebruikt voor het e-mailadres en andere details.
Stel dat u een contactformulier moet maken, waarop gebruikers hun gegevens moeten invullen en het formulier vervolgens moeten verzenden.
- Gebruikers kunnen per ongeluk of opzettelijk code in de headers injecteren, wat kan resulteren in het verzenden van spammail
- Om uw systeem tegen dergelijke aanvallen te beschermen, kunt u een aangepaste functie maken die de waarden opschoont en valideert voordat de e-mail wordt verzonden.
Laten we een aangepaste functie maken die het e-mailadres valideert en opschoont met behulp van de ingebouwde functie filter_var.
Functie Filter_var De functie filter_var wordt gebruikt om de invoergegevens van de gebruiker op te schonen en te valideren.
De basissyntaxis is als volgt.
<?php filter_var($field, SANITIZATION TYPE); ?>
HIER,
- “filter_var(…)” is de validatie- en opschoningsfunctie
- “$field” is de waarde van het veld dat moet worden gefilterd.
- “SANITISATIETYPE” is het type ontsmetting dat op het veld moet worden uitgevoerd, zoals;
- FILTER_VALIDATIE_EMAIL – het retourneert true voor geldige e-mailadressen en false voor ongeldige e-mailadressen.
- E-MAIL_FILTER_SANITIZE – het verwijdert illegale tekens uit e-mailadressen. info\@domein.(com) retourneert info@domein.com.
- FILTER_SANITIZE_URL – het verwijdert illegale tekens uit URL's. http://www.voorbeeld@.comé retourneert >http://www.voorbeeld@.com
- FILTER_SANITIZE_STRING – het verwijdert tags uit tekenreekswaarden. ben stoutmoedig wordt ben stoutmoedig.
De onderstaande code implementeert een aangepaste functie om beveiligde e-mail te versturen.
<?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:
Beveilig Mail
E-mails kunnen tijdens de verzending worden onderschept door onbedoelde ontvangers.
Hierdoor kan de inhoud van de e-mail zichtbaar worden voor onbedoelde ontvangers.
Veilige e-mail lost dit probleem op door e-mails te verzenden via Hypertext Transfer Protocol Secure (HTTPS).
HTTPS codeert berichten voordat ze worden verzonden.
Samenvatting
- De PHP ingebouwde functie mail() wordt gebruikt om mail te versturen vanuit PHP scripts
- Validatie- en opschoningscontroles op de gegevens zijn essentieel voor het verzenden van veilige e-mail
- De ingebouwde PHP-functie filter_var() biedt een eenvoudig te gebruiken en efficiënte manier om gegevens op te schonen en te valideren