Structured content
core/paragraph
Envoyer un message depuis un script PHP repose sur deux méthodes principales : la fonction mail() intégrée au langage et l’utilisation d’une bibliothèque comme PHPMailer. La première peut suffire pour des tests, mais elle montre vite ses limites en production. Pour une communication fiable sur un hébergement comme Infomaniak, le recours au protocole SMTP, avec authentification et configuration complète, améliore la délivrabilité et évite de finir en indésirable. Ce guide vous accompagne dans chaque étape, des bases aux options avancées.
core/heading
Comment fonctionne l’envoi d’un e-mail en PHP ?
core/paragraph
L’envoi d’un message électronique via PHP repose sur l’accès au service de messagerie du serveur hôte. La fonction intégrée appelle le binaire sendmail ou un serveur SMTP local, mais son comportement dépend fortement de la configuration du système. Sans authentification ni en-têtes complets, les messages peuvent être bloqués ou considérés comme spam. Sur un hébergement Infomaniak, il est recommandé de désactiver mail() et de passer par une configuration SMTP complète.
core/paragraph
A lire aussi : Création du tout premier navigateur avec une interface graphique : retour sur l'histoire
core/heading
Comment utiliser la fonction mail() en PHP pour envoyer un message ?
core/embed
https://youtu.be/Fywr8gIVdLY
core/paragraph
La fonction mail() accepte trois arguments de base : l’adresse du destinataire, le sujet et le corps du message. Un quatrième paramètre permet d’ajouter des en-têtes, essentiels pour spécifier l’expéditeur ou le format du contenu.
core/code
mail(
'contact@exemple.com',
'Sujet du message',
"Bonjour,\nCeci est un message automatique.",
"From: webmaster@exemple.com\r\nContent-Type: text/plain; charset=UTF-8"
);
core/paragraph
Cette méthode reste basique. Elle ne permet pas une gestion avancée des erreurs, ni l’envoi via des serveurs SMTP externes. Elle est donc peu adaptée à un usage professionnel.
core/heading
Comment configurer correctement les paramètres SMTP pour PHP ?
core/paragraph
L’usage de PHPMailer, SwiftMailer ou Symfony Mailer offre un contrôle total sur les paramètres SMTP. Pour chaque expéditeur, il faut fournir :
core/table
ParamètreExemple de valeurHôte SMTPsmtp.mail.infomaniak.comPort587 (STARTTLS) ou 465 (SSL)AuthentificationOuiNom d’utilisateuridentifiant fourni par le service SMTPMot de passemot de passe SMTP sécuriséSécuritéTLS ou SSL
core/paragraph
Chez Infomaniak, toutes ces données sont accessibles dans la console mail de l’espace client. Le respect exact de ces paramètres est indispensable pour un bon fonctionnement.
core/heading
Pourquoi l’envoi de mail en PHP ne fonctionne-t-il pas sur votre serveur ?
core/paragraph
Plusieurs causes peuvent bloquer l’envoi :
core/list
Serveur sans sendmail actif
Port SMTP sortant bloqué
Expéditeur non autorisé (SPF, DKIM manquants)
Fonction mail() désactivée dans php.ini
core/paragraph
Un simple test avec phpinfo() permet de vérifier si sendmail_path est défini. En cas de doute, un service comme Mailtrap ou l’interface SMTP d’Infomaniak permet de simuler un envoi et d’analyser le comportement de votre script.
core/paragraph
À consulter : Localisation exacte de l’adresse IP 87.217.27.254 : quel pays ?
core/heading
Comment envoyer un e-mail en PHP avec une bibliothèque comme PHPMailer ?
core/paragraph
PHPMailer est compatible avec Composer et s’utilise en quelques lignes. Il gère l’authentification SMTP, les pièces jointes, les messages HTML, et la journalisation des erreurs.
core/code
use PHPMailer\PHPMailer\PHPMailer;
require 'vendor/autoload.php';
$mail = new PHPMailer(true);
$mail->isSMTP();
$mail->Host = 'smtp.mail.infomaniak.com';
$mail->SMTPAuth = true;
$mail->Username = 'user';
$mail->Password = 'pass';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->setFrom('from@example.com', 'Expéditeur');
$mail->addAddress('destinataire@example.com');
$mail->Subject = 'Sujet';
$mail->Body = 'Message texte';
$mail->send();
core/paragraph
Cette méthode est parfaitement compatible avec les serveurs d’Infomaniak, et assure une délivrabilité supérieure grâce à la configuration complète du compte expéditeur.
core/heading
Comment sécuriser l’envoi d’e-mails en PHP pour éviter le spam et les erreurs ?
core/image
Comment sécuriser l’envoi d’e mails en PHP pour éviter le spam et les erreurs
core/paragraph
Chaque message doit comporter des en-têtes cohérents : adresse expéditeur valide, nom lisible, sujet explicite. Les champs Reply-To, Return-Path, List-Unsubscribe améliorent aussi la réputation de l’expéditeur. Il faut également vérifier que les enregistrements SPF, DKIM et DMARC du domaine sont correctement configurés, notamment si vous utilisez un domaine personnalisé.
core/paragraph
Des outils comme MXToolbox permettent de tester ces enregistrements.
core/heading
Comment envoyer un e-mail avec pièce jointe en PHP ?
core/paragraph
Les bibliothèques comme PHPMailer permettent d’ajouter un document ou une image en quelques lignes :
core/code
$mail->addAttachment('/chemin/fichier.pdf', 'NomDuFichier.pdf');
core/paragraph
La fonction mail() ne gère pas cela directement : il faudrait construire manuellement un message multipart avec des encodages MIME, ce qui est long et risqué. L’utilisation d’une bibliothèque est donc fortement recommandée.
core/paragraph
A lire aussi : iPhone désactivé : comment le réactiver sans ordinateur ?
core/heading
Comment tester et vérifier la délivrabilité d’un e-mail envoyé en PHP ?
core/paragraph
Le meilleur moyen reste d’utiliser des plateformes comme Mailtrap, Gmail, Outlook, et de surveiller :
core/list
L’arrivée en boîte de réception principale
L’analyse anti-spam des entêtes
La présence de la signature DKIM
La conformité SPF/DMARC
core/paragraph
Sur un hébergement Infomaniak, vous pouvez activer les journaux SMTP pour inspecter le détail des échanges avec le serveur de destination. Cela permet d’identifier les erreurs de configuration et d’améliorer les performances d’envoi.