Comment envoyer un e-mail à l'aide de la fonction PHP mail()

Qu'est-ce que la messagerie PHP ?

PHP mail est la fonction PHP intégrée utilisée pour envoyer des e-mails à partir de scripts PHP.

La fonction mail accepte les paramètres suivants :

  • Adresse e-mail
  • Sujet
  • Message
  • Adresses e-mail CC ou BC

  • C'est un moyen rentable d'informer les utilisateurs des événements importants.
  • Permettez aux utilisateurs de vous contacter par e-mail en fournissant un formulaire de contact sur le site Web qui envoie par e-mail le contenu fourni.
  • Les développeurs peuvent l'utiliser pour recevoir les erreurs système par e-mail
  • Vous pouvez l'utiliser pour envoyer un e-mail à vos abonnés à la newsletter.
  • Vous pouvez l'utiliser pour envoyer des liens de réinitialisation de mot de passe aux utilisateurs qui oublient leur mot de passe
  • Vous pouvez l'utiliser pour envoyer par e-mail des liens d'activation/confirmation. Ceci est utile lors de l'enregistrement des utilisateurs et de la vérification de leurs adresses e-mail

Pourquoi/Quand utiliser le mail PHP

Envoi de courrier en utilisant PHP

La fonction de messagerie PHP a la syntaxe de base suivante

<?php
mail($to_email_address,$subject,$message,[$headers],[$parameters]);
?>

ICI,

  • "$to_email_address" est l'adresse e-mail du destinataire du courrier
  • "$subject" est le sujet de l'e-mail
  • « $message » est le message à envoyer.
  • « [$headers] » est facultatif, il peut être utilisé pour inclure des informations telles que CC, BCC

    • CC est l'acronyme de copie carbone. Il est utilisé lorsque vous souhaitez envoyer une copie à une personne intéressée, c'est-à-dire qu'un e-mail de plainte envoyé à une entreprise peut également être envoyé en CC à la commission des plaintes.
    • BCC est l'acronyme de copie carbone invisible. C'est similaire à CC. Les adresses e-mail incluses dans la section BCC ne seront pas affichées aux autres destinataires.

Simple Mail Transmission Protocole (SMTP)

Le mailer PHP utilise Simple Mail Transmission Protocole (SMTP) pour envoyer du courrier.

Sur un serveur hébergé, les paramètres SMTP auraient déjà été définis.

Les paramètres de messagerie SMTP peuvent être configurés à partir du fichier « php.ini » dans le dossier d'installation PHP.

Configuration des paramètres SMTP sur votre hôte local En supposant que vous utilisez xampp sous Windows, localisez le « php.ini » dans le répertoire « C:\xampp\php ».

  • Ouvrez-le à l'aide du Bloc-notes ou de n'importe quel éditeur de texte. Nous utiliserons le bloc-notes dans cet exemple. Cliquez sur le menu édition

Simple Mail Transmission Passerelle

  • Cliquez sur le menu Rechercher…

Simple Mail Transmission Passerelle

  • Le menu de dialogue de recherche apparaîtra

Simple Mail Transmission Passerelle

  • Cliquez sur le bouton Rechercher suivant

Simple Mail Transmission Passerelle

  • Localisez les entrées

    • [fonction de messagerie]
    • ; XAMPP : Ne supprimez pas la demi-colonne si vous souhaitez travailler avec un serveur SMTP comme Mercury
    • ; SMTP = hôte local
    • ; port_smtp = 25
    • Supprimez les points-virgules avant SMTP et smtp_port et définissez le SMTP sur votre serveur smtp et le port vers votre port smtp. Vos paramètres devraient ressembler à ceci

      • SMTP = smtp.exemple.com
      • port_smtp = 25
      • Notez : les paramètres SMTP peuvent être obtenus auprès de vos fournisseurs d'hébergement Web.
      • Si le serveur nécessite une authentification, ajoutez les lignes suivantes.

        • auth_username = exemple_username@example.com
        • auth_password = exemple_password
        • Enregistrez les nouvelles modifications.
        • Recommencer Apache serveur.

PHP Mail Exemple

Regardons maintenant un exemple qui envoie un simple 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);
?>

Sortie :

Simple Mail Transmission Passerelle

Remarque : l'exemple ci-dessus ne prend que les 4 paramètres obligatoires.

Vous devez remplacer l'adresse e-mail fictive ci-dessus par une véritable adresse e-mail.

Désinfection des entrées des utilisateurs de courrier électronique

L'exemple ci-dessus utilise des valeurs codées en dur dans le code source pour l'adresse e-mail et d'autres détails par souci de simplicité.

Supposons que vous deviez créer un formulaire de contact pour que les utilisateurs remplissent les détails puis soumettent.

  • Les utilisateurs peuvent accidentellement ou intentionnellement injecter du code dans les en-têtes, ce qui peut entraîner l'envoi de spam.
  • Pour protéger votre système contre de telles attaques, vous pouvez créer une fonction personnalisée qui nettoie et valide les valeurs avant l'envoi du courrier.

Créons une fonction personnalisée qui valide et nettoie l'adresse e-mail à l'aide de la fonction intégrée filter_var.

Fonction Filter_var La fonction filter_var est utilisée pour nettoyer et valider les données d'entrée utilisateur.

Il a la syntaxe de base suivante.

<?php
filter_var($field, SANITIZATION TYPE);
?>

ICI,

  • «filter_var(…)» est la fonction de validation et de désinfection
  • « $field » est la valeur du champ à filtrer.
  • « TYPE D'ASSAINISSEMENT » est le type de désinfection à effectuer sur le terrain tel que :

    • FILTRE_VALIDER_EMAIL – il renvoie vrai pour les adresses e-mail valides et faux pour les adresses e-mail invalides.
    • FILTER_SAnitIZE_EMAIL – il supprime les caractères illégaux des adresses e-mail. info\@domain.(com) renvoie info@domain.com.
    • FILTER_SANITIZE_URL – il supprime les caractères illégaux des URL. http://www.example@.comé renvoie >http://www.example@.com
    • FILTER_SANITIZE_STRING – il supprime les balises des valeurs de chaîne. je suis audacieux devient je suis audacieux.

Le code ci-dessous implémente utilise une fonction personnalisée pour envoyer du courrier sécurisé.

<?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";
}
?>

Sortie :

Désinfection des entrées des utilisateurs de courrier électronique

Sécurisés Mail

Les e-mails peuvent être interceptés lors de leur transmission par des destinataires involontaires.

Cela peut exposer le contenu de l'e-mail à des destinataires inattendus.

Le courrier sécurisé résout ce problème en transmettant des e-mails via Hypertext Transfer Protocol Secure (HTTPS).

HTTPS crypte les messages avant de les envoyer.

Résumé

  • La série PHP la fonction intégrée mail() est utilisée pour envoyer du courrier à partir de scripts PHP
  • Les contrôles de validation et de désinfection des données sont essentiels pour l'envoi de courrier sécurisé
  • La fonction PHP intégrée filter_var() fournit un moyen facile à utiliser et efficace d'effectuer la désinfection et la validation des données.