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

Eenvoudig Mail Transmission Protocol

  • Klik op het menu Zoeken...

Eenvoudig Mail Transmission Protocol

  • Het zoekdialoogmenu verschijnt

Eenvoudig Mail Transmission Protocol

  • Klik op de knop Volgende zoeken

Eenvoudig Mail Transmission Protocol

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

Eenvoudig Mail Transmission Protocol

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:

E-mailgebruikersinvoer opschonen

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