Envoi de courriels
Prérequis sur le serveur
L'envoi de courriels depuis un script PHP repose sur un service, en l'occurrence "sendmail", qui sert de serveur de courriels sortants.
C'est pour cette raison, que, par défaut, l'envoi de courriels en local (avec Wamp par exemple) ne fonctionne pas.

Paramètres principaux de configuration d'envoi de courriels
L'envoi de courriels avec la fonction mail()
Nativement, PHP dispose d'une fonction d'envoi de courriel : mail().
<?php
<?php
$message = "Bonjour,\r\nMerci pour vos explications.\r\n \tJ. Dupont";
mail('v.martin@helmo.be', 'Re:Demande d\'aide', $message );
?>
Notez l'importance d'utiliser des "guillemets doubles" et non 'simples' pour que les sauts de lignes, tabulations, … soient interprétés.
Personnalisation des paramètres du courriel
Bien entendu, la fonction mail() permet de personnaliser les entêtes du courriel pour ajouter des destinataires en copie carbone (cc:) ou copie cachée (bcc:), spécifier l'adresse de réponse (reply-to:), l'adresse d'expéditeur (from:), le codage des caractères, des fichiers joints, ...
Consultez la documentation de la fonction mail() Référence officielle >> ou la liste des entêtes courriel en fonction des serveurs mails pour en savoir plus Référence >>.
<?php
<?php
$to = 'v.martin@helmo.be' ;
$subject = 'Re: Demande d\'aide' ;
$message = 'Bonjour, …' ;
$headers = 'From: j.brusten@helmo.be' . "\r\n" .
'Reply-To: no-reply@helmo.be' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>
Vous l'aurez compris... rien de plus simple que d'envoyer un courriel en se faisant passer pour quelqu'un d'autre.
AVERTISSEMENT
L'usurpation d'identité, comme l'envoi d'un courriel au nom d'une autre personne, est illégale et répréhensible !
En général, dans les entreprises, une adresse email existe, commençant par "noreply" ou "no-reply" et qui est configurée pour ne pas conserver les messages reçus. Celle-ci est utilisée comme adresse courriel de réponse lors d'envois de mails publicitaires ou de notifications
L'envoi de courriels avec la librairie PHPMailer
L'envoi de pièces jointes à un courriel et certains paramètres de personnalisation peut devenir assez fastidieux avec l'utilisation de la fonction native mail().
Plusieurs librairies existent pour simplifier la génération de courriels dont notamment:

(Vidéo: "Démo de PHPMailer", durée: 8min18)
Testing
Téléchargez et copiez le dossier PHPMailer dans votre dossier dossier/public_html
Seules les dossiers src et language sont nécessaires.
- Créez le fichier
mailerTest.php: -
Copiez-y le code suivant. Veillez à mentionner votre adresse mail >
<?php require './PHPMailer/src/PHPMailer.php'; require './PHPMailer/src/Exception.php'; use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; $mail = new PHPMailer(true); try { $mail->CharSet = 'UTF-8'; $mail->setFrom('toto@helmo.be'); $mail->addAddress('xxx@helmo.be'); //placez VOTRE adresse courriel $mail->addReplyTo('no-reply@helmo.be'); $mail->isHTML(false); $mail->Subject = 'Re: Demande d\'aide'; $mail->Body = 'Bonjour, …'; $mail->send(); echo "Courrier envoyé"; } catch(Exception $e){ return 'Erreur survenue lors de l\'envoi de l\'email<br>'. $mail->ErrorInfo; } ?> -
Placez votre fichier sur le serveur et testez l'envoi du courriel.