Apr 09, 2025
Ismail
13minutes de lecture
La plupart des entreprises créent un compte de courrier électronique professionnel pour renforcer leur crédibilité et gagner la confiance de leurs clients. Pour ce faire, vous devez acheter un nom de domaine et configurer votre messagerie professionnelle sur un client de messagerie ou un serveur.
Si vous créez votre site ou votre application web avec le langage de programmation PHP, vous pouvez envoyer des courriers électroniques directement à partir de votre serveur web. La fonctionnalité de courrier électronique de PHP vous permet de créer des formulaires de courrier personnalisés et d’envoyer des courriers électroniques textuels de base à plusieurs destinataires.
Il y a deux façons d’envoyer des courriers électroniques en PHP : en utilisant la fonction PHP mail() intégrée ou une bibliothèque d’envoi de courriers électroniques telle que PHPMailer.
Dans cet article, nous aborderons les différences entre PHPMailer et la fonction mail() et nous vous montrerons comment envoyer des emails avec les deux.
Obtenez le glossaire complet du développement web
PHP mail est une fonction qui envoie des emails en utilisant des scripts PHP. La fonction PHP intégrée peut cibler plusieurs destinataires par envoi d’email. Cependant, elle n’est pas adaptée à l’envoi d’emails en masse sans l’utilisation d’un logiciel externe d’envoi d’emails en PHP comme PHPMailer.
PHP mail permet aux administrateurs de sites web basés sur PHP d’envoyer des courriers électroniques depuis leur serveur web à l’aide de scripts PHP. Il s’agit d’une alternative populaire à l’utilisation d’un service d’hébergement de courrier électronique tiers, car la fonction PHP est intégrée au serveur web.
L’envoi d’emails en PHP est possible via la fonction native PHP mail() ou via un package PHP externe comme PHPMailer. Voici une brève présentation de chaque méthode, avec ses avantages et ses inconvénients :
Fonction PHP mail()
mail() est une fonction PHP qui utilise des scripts PHP pour envoyer des messages électroniques simples. La fonction mail comprend trois paramètres obligatoires : $to, $subject et $message. Les paramètres optionnels à utiliser sont $headers et $parameters. Nous les aborderons plus en détail ultérieurement.
Cette fonction PHP intégrée renvoie une valeur booléenne lors de l’exécution – VRAI si le serveur reçoit avec succès l’e-mail à envoyer ou FAUX en cas d’échec.
Avantages :
Inconvénients :
Important ! Pour les utilisateurs de Hostinger, gardez à l’esprit que les limites actuelles pour les emails envoyés via PHP mail() sont de 100/jour et 10/minute. Ces limites seront réinitialisées toutes les 24 heures et seront consommées immédiatement s’il y a des emails en file d’attente.
PHPMailer
PHPMailer est une bibliothèque populaire d’envoi de courrier qui supporte l’envoi de courrier via la fonction mail() ou un serveur SMTP (Simple Mail Transfer Protocol). Elle donne accès à un ensemble de fonctions pour l’envoi de courrier, simplifiant le processus de configuration manuelle du courrier en PHP.
Avantages :
Inconvénients :
Important ! Si vous utilisez PHPMailer avec Titan Mail sur Hostinger, la limite d’envoi est 1000 emails/jour et 300 emails/heure. Pour le service de messagerie d’Hostinger, la limite est plus élevée – jusqu’à 3000 emails/jour sans limite horaire. Vérifiez les paramètres et les limites de chaque service, car ils varient en fonction de votre plan d’hébergement.
Dans cette section, nous allons couvrir les étapes de l’envoi de courrier à l’aide de PHPMailer. Nous recommandons d’utiliser une connexion SMTP authentifiée avec PHPMailer afin d’augmenter la délivrabilité de vos courriels contre les filtres anti-spam.
L’installation de PHPMailer est assez simple, surtout si l’on utilise Composer.
Notez que les plans d’hébergement web Premium et Business d’Hostinger ainsi que les options d’hébergement cloud sont préinstallés avec deux versions de Composer.
Utilisez la commande composer pour activer la version 1.10 de Composer. Si vous avez besoin de la nouvelle version 2.0 ou si vous utilisez la version 8.0 de PHP ou une version ultérieure, exécutez la commande composer2.

Important ! Vous devez installer PHPMailer en utilisant Composer via SSH pour qu’il fonctionne correctement. L’ajout d’un fichier phpmailer.php avec du code SMTP, comme nous le verrons plus loin dans ce guide, ne fonctionnera pas sans une installation correcte
Suivez ces étapes pour installer PHPMailer manuellement :
cd public_html
composer2 require phpmailer/phpmailer

Apprenez plus de commandes SSH pour vous aider à gérer votre serveur.
Pour comprendre le fonctionnement de PHPMailer, passons en revue chaque composant du script ci-dessus.
La ligne SMTPDebug = 2; n’est applicable que lorsque vous testez un script et que vous voulez voir comment il fonctionne. N’oubliez pas de la remplacer par SMTPDebug = 0; lorsque vous avez terminé le test afin d’éviter que les destinataires ne reçoivent le rapport de livraison du protocole SMTP.
Après avoir installé PHPMailer, vous pouvez commencer à envoyer des courriers électroniques en PHP. Cette section vous montrera comment envoyer des courriels via le serveur SMTP Hostinger à l’aide de PHPMailer.
Pour ce faire, suivez les étapes ci-dessous :
<?php
require 'vendor/autoload.php';
use PHPMailer\PHPMailer\PHPMailer;
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Host = 'smtp.hostinger.com';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = 'monmail@mondomaine.tld';
$mail->Password = 'My$tr0ngPa55w0rd!';
$mail->setFrom('monmail@mondomaine.tld', 'Votre Nom');
$mail->addReplyTo('monmail@mondomaine.tld', 'Votre Nom');
$mail->addAddress('destinataire@domaine.tld', 'Nom du destinataire');
$mail->Subject = 'Checking if PHPMailer works';
$mail->msgHTML(file_get_contents('message.html'), __DIR__);
$mail->Body = 'Vérifier que PHPMailer fonctionne';
//$mail->addAttachment('attachment.txt');
if (!$mail->send()) {
echo 'Mailer Error:'. $mail->ErrorInfo;
} else {
echo 'Le message e-mail a été envoyé.';
}
?>
Si vous utilisez Titan Mail, connectez-vous via le port 465 (SSL) ou 587 (STARTTLS). Visitez Emails → Configurer l’application de bureau pour voir les détails de configuration de votre compte email. Vous pouvez également consulter le tutoriel officiel de Titan pour obtenir les paramètres SMTP, IMAP ou POP corrects.
Outre l’envoi de courrier simple en PHP, PHPMailer permet aux utilisateurs de créer divers formulaires de contact, tels que des enquêtes de satisfaction.
Comme pour les scripts PHP précédents, créez un nouveau fichier PHP dans le dossier public_html et nommez-le formscript.php. Copiez et collez le script ci-dessous dans le nouveau fichier et modifiez les valeurs en conséquence :
<?php
use PHPMailer\PHPMailer\PHPMailer;
$msg = '';
if (array_key_exists('email', $_POST)) {
require 'vendor/autoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.hostinger.com';
$mail->Port = 587;
$mail->SMTPDebug = 0;
$mail->SMTPAuth = true;
$mail->Username = 'monmail@mondomaine.tld';
$mail->Password = 'My$tr0ngPa55w0rd!';
$mail->setFrom('monmail@mondomaine.tld', 'Mr. Snuffles');
$mail->addAddress('destinataire@domaine.tld', 'Nom du destinataire');
if ($mail->addReplyTo($_POST['email'], $_POST['name'])) {
$mail->Subject = 'PHPMailer contact form';
$mail->isHTML(false);
$mail->Body = <<<EOT
Email: {$_POST['email']}
Name: {$_POST['name']}
Message: {$_POST['message']}
EOT;
if (!$mail->send()) {
$msg = 'Sorry, something went wrong. Please try again later.';
} else {
$msg = 'Message sent! Thanks for contacting us.';
}
} else {
$msg = 'Share it with us!';
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Contact form</title>
</head>
<body>
<h1>Contact us</h1>
<?php if (!empty($msg)) {
echo "<h2>$msg</h2>";
} ?>
<form method="POST">
<label for="name">Name: <input type="text" name="name" id="name"></label><br>
<label for="email">Email address: <input type="email" name="email" id="email"></label><br>
<label for="message">Message: <textarea name="message" id="message" rows="8" cols="20"></textarea></label><br>
<input type="submit" value="Send">
</form>
</body>
</html>
Prendre l’entrée de l’utilisateur dans $_POST et l’utiliser sans aseptisation n’est pas sûr en raison des attaques cross-site scripting (XSS). Pour éviter cela, consultez les meilleures pratiques pour l’assainissement des variables PHP.
Enregistrez vos modifications et exécutez le script à partir de votre navigateur.
Voici à quoi ressemblera le résultat :

Si un visiteur envoie un message via le formulaire, il recevra une confirmation. Le contenu du formulaire sera envoyé à l’adresse électronique que vous avez indiquée ici :
$mail->addAddress('destinataire@domaine.tld', 'Nom du destinataire');Si le formulaire de contact de PHPMailer ne fonctionne pas, remplacez la ligne $mail->SMTPDebug = 0; par $mail->SMTPDebug = 2 pour identifier la cause. N’oubliez pas de supprimer la ligne ou de changer le 2 en 0 après
Visitez le dépôt officiel de PHPMailer sur GitHub pour découvrir d’autres exemples d’utilisation de cette bibliothèque d’envoi de courrier.
Si vous utilisez WordPress, vous pouvez rationaliser le processus de création de de formulaires en utilisant un plugin de formulaire de contact tel que Formidable Forms, Contact Form 7 ou WPForms.
Une autre méthode pour envoyer des courriels directement depuis PHP est la fonction intégrée mail(). Pour utiliser cette fonction, les utilisateurs qui hébergent leur application ou leur site PHP sur un serveur local doivent configurer un programme Sendmail en modifiant le fichier php.ini dans leur dossier d’installation PHP.
Si vous utilisez un serveur d’hébergement, Sendmail est généralement déjà préconfiguré. Toutefois, vous devez vous assurer que votre hébergeur vous permet de gérer manuellement l’option de service Sendmail.
Par défaut, le service Sendmail est déjà activé. Néanmoins, vérifiez à nouveau pour vous en assurer.
Important ! Titan Mail active la fonction PHP mail() par défaut. Vous ne pouvez donc pas l’activer ou la désactiver dans hPanel
Pour vous aider à comprendre la fonction PHP mail(), nous allons passer en revue les composants du script PHP utilisé dans la section précédente.
ini_set( 'display_errors', 1 ); error_reporting( E_ALL );
Les deux premières lignes ci-dessus activent le rapport d’erreur pour vous informer si le script PHP n’a pas réussi à s’exécuter.
$from = "monmail@mondomaine.tld";
Cette ligne contient l’adresse électronique de l’expéditeur. La plupart des hébergeurs interdisent d’ajouter des adresses e-mail aléatoires à cet endroit en raison du risque de spoofing. Par conséquent, il est préférable d’utiliser une adresse avec votre nom de domaine pour exécuter le script avec succès.
$to = "destinataire@domaine.tld";
L’adresse électronique du destinataire est indiquée ici. Séparez les adresses électroniques par des virgules si vous souhaitez envoyer plusieurs courriels.
$subject = "Test du mail PHP";
Saisissez l’objet du courriel ici.
$message = "Le mail PHP fonctionne correctement";
Saisissez ici le corps de votre message électronique.
$headers = "From :" . $from ;
Cette ligne comprend généralement des en-têtes supplémentaires tels que From, Reply-To et Cc. Vous pouvez les séparer avec le CRLF.
if (mail ($to,$subject,$message,$headers))
Ce script exécute la fonction mail() et vérifie si elle s’est exécutée correctement.
echo "Le message email a été envoyé.";
Le message ci-dessus apparaît si la fonction mail() est exécutée avec succès.
echo "Le message email n'a pas été envoyé.";
Sinon, vous verrez ce message si la fonction mail() échoue.
Bien que les en-têtes supplémentaires soient facultatifs, il est essentiel d’inclure l’en-tête From lors de l’envoi de courrier. Dans le cas contraire, vous recevrez une notification de ce type :
Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing.
Pour plus d’informations sur la fonction Sendmail et ses paramètres, reportez-vous à la documentation officielle de PHP.
Après avoir vérifié que Sendmail est actif, créez un fichier mail PHP dans le répertoire public_html.
Voici comment procéder :
<?php
ini_set( 'display_errors', 1 );
error_reporting( E_ALL );
$from = "monmail@mondomaine.tld";
$to = "destinataire@domaine.tld";
$subject = "Test du mail PHP";
$message = "Le mail PHP fonctionne parfaitement";
$headers = "From:" . $from;
if(mail($to,$subject,$message, $headers)) {
echo "Le message e-mail a été envoyé.";
} else {
echo "Le message e-mail n'a pas pu être envoyé.";
}
?>La fonction PHP mail() permet également d’envoyer des messages électroniques au format HTML. Ce format est hautement personnalisable par rapport à un message en texte simple.
La procédure d’envoi d’un courrier HTML est la même, mais vous devez cette fois inclure un message HTML et des en-têtes de paramètres supplémentaires.
Voici un exemple de script de base pour l’envoi d’un courrier électronique au format HTML :
<?php
ini_set( 'display_errors', 1 );
error_reporting( E_ALL );
$from = "monmail@mondomaine.tld";
$to = "destinataire@domaine.tld";
$subject = "Test du mail PHP";
$message = "
<html>
<head>
<title>Ceci est un e-mail de test en HTML</title>
</head>
<body>
<p>Salut, c'est un e-mail de test. Merci de l'ignorer.</p>
</body>
</html>
";
// L'en-tête Content-type doit être défini lors de l'envoi d'un e-mail HTML
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers = "From:" . $from;
if(mail($to,$subject,$message, $headers)) {
echo "Le message a été envoyé.";
} else {
echo "Le message n'a pas pu être envoyé.";
}
?>Dans la section suivante, nous allons passer en revue certains des problèmes les plus courants lors de l’utilisation de la fonction PHP mail() ou de PHPMailer et comment les résoudre.
Cette erreur signifie que le serveur n’a pas pu authentifier l’expéditeur à l’aide des informations fournies. Pour résoudre ce problème, vérifiez l’adresse électronique que vous avez utilisée pour envoyer le message et assurez-vous qu’elle correspond à une adresse existante.
Assurez-vous également que votre Sender Policy Framework (SPF) est activé. Si vous utilisez Hostinger, vérifiez votre enregistrement SPF en allant sur hPanel et en naviguant vers Emails → Comptes email→ Paramètres DNS → Gérer la distribution des e-mails.
Si l’enregistrement SPF est activé, il sera indiqué comme actif.
Si cet avertissement apparaît lors du test d’un script de courrier électronique en PHP, la cause peut être l’une des suivantes :
Il y a plusieurs raisons pour lesquelles le courrier PHP peut déclencher des filtres anti-spam. Les causes les plus courantes sont les suivantes :
Les nouvelles versions de PHP ont généralement un comportement SSL plus strict. Si la fonction PHP mail() ne s’exécute pas après la mise à jour de votre PHP vers la dernière version, cela peut en être la cause.
L’utilisation de PHPMailer avec certains hébergeurs déclenche également cette erreur de code.
Par exemple, selon le wiki PHPMailer, GoDaddy bloque les connexions SMTP sortantes via les ports 25, 465 et 587 vers des serveurs tiers tels que Gmail et Hotmail, à l’exception de ses propres serveurs. En outre, il ne prend pas en charge l’intégration avec des serveurs SMTP tiers.
Utilisez le script suivant pour résoudre cette erreur :
$mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) );
Important ! Evitez d’implémenter ces changements globalement dans php.ini, car cela permet des connexions non sécurisées, un problème de sécurité que PHP a résolu depuis la version 5.6.
Comme Hostinger SMTP n’a pas ce problème, envisagez de migrer vers notre service de messagerie professionnelle pour une meilleure expérience d’envoi.

Vous pouvez envoyer des courriels avec PHP en utilisant la fonction mail() ou une bibliothèque d’envoi de courriels comme PHPMailer. La première est adaptée à l’envoi de petits volumes de messages textuels simples, tandis que la seconde est plus adaptée à l’envoi d’e-mails en masse ou à la création de formulaires de contact.
Vous pouvez exploiter la fonction de messagerie intégrée de PHP en créant un nouveau fichier PHP dans le répertoire public_html et en exécutant le script à l’aide de votre navigateur web.
En revanche, l’envoi d’e-mails avec PHPMailer nécessite l’installation de la bibliothèque de code via Composer, la création d’un compte e-mail et la configuration des paramètres SMTP de votre hébergement.
Dans ce tutoriel, nous avons abordé l’installation de PHPMailer, la création d’un script de test et la mise en place d’un simple formulaire de contact. Nous avons également abordé l’envoi d’e-mails avec la fonction PHP mail() et la résolution des erreurs courantes au cours du processus d’envoi d’e-mails.
Nous espérons que ce tutoriel vous a été utile. Si vous avez d’autres questions, laissez-les dans la section des commentaires ci-dessous.
Cela dépend de votre fournisseur d’hébergement. Avec GoDaddy, vous ne pouvez pas envoyer de courrier à des boîtes de réception qui utilisent les protocoles d’authentification SPF et DKIM comme Gmail, Yahoo et Hotmail. Cependant, ce problème ne persiste pas avec Hostinger. Contactez votre hébergeur pour clarifier ses paramètres SMTP et savoir s’il prend en charge PHPMailer avec des serveurs SMTP tiers.
Vous pouvez utiliser la fonction filter_var() et transmettre l’adresse électronique au filtre FILTER_VALIDATE_EMAIL. Ce filtre vérifiera la validité de l’adresse électronique, en s’assurant qu’elle ne contient pas de caractères non pris en charge ou d’espaces blancs.
Tout le contenu des tutoriels de ce site est soumis aux normes éditoriales et aux valeurs rigoureuses de Hostinger.
Commentaires
June 12 2020
Bonjour, je voulais savoir s'il était possible de mettre son adresse mail perso au lieu de mettre l'adresse du domaine car cela ne m'arrange pas trop pour mon site web. Merci d'avance.
June 16 2020
Bonjour Sammy! Oui, vous pouvez utiliser une adresse e-mail différente dans le champ $from, mais notez que votre mail pourrait finir dans le dossier spam.
November 13 2020
Bonjour, A chaque envoi de mel par script qui comporte en général une petite dizaine de destinataires, le service sendmail se désactive. A partir de quelle fréquence d'envoi ou nombre de destinataire on considère qu'il s'agit de SPAM merci
July 01 2022
Bonjour, Si vous avez besoin d’aide n’hésitez pas à contacter notre équipe de succès client sur cette adresse mail: fr@hostinger.com Merci
February 18 2022
Bonjour, je suis entrain de créer un fichier testphpmailer mais çà ne fonctionne pas, je reçois HTTP ERROR 500
January 09 2023
Bonjour ! L'erreur 500 indique qu'il y a un problème avec le code PHP Mailer du client, donc si vous obtenez cette eureur, il faudra revérifier votre code. Veuillez contacter notre équipe chargée de la réussite des clients afin qu'elle puisse l'aider avec son code PHP Mailer via l'adresse mail : fr@hostinger.com
September 06 2022
Bonsoir, offrez vous des plans distributeurs hébergement (si je me suis bien fais comprendre) merci.
January 08 2023
Bonjour ! Je vous invite à contacter notre équipe de succès client afin de recevoir une assistance plus adapté à votre situation. Vous pouvez les contacter via email sur cette adresse : fr@hostinger.com Bonne chance !
October 05 2022
Merci a toi :)