Cet article explique comment fonctionne l'envoi d'e-mails depuis votre site web hébergé chez nous, pourquoi certains messages peuvent finir en indésirables, et quelles sont les bonnes pratiques pour garantir la meilleure délivrabilité possible, ainsi que pour sécuriser les formulaires de vos sites.
En bref : l'envoi direct par mail() passe par une infrastructure partagée, sans garantie de délivrabilité. Envoyez plutôt en SMTP authentifié depuis un compte e-mail de votre domaine, avec SPF, DKIM et DMARC configurés, et protégez vos formulaires.
Ce qu'il faut savoir avant de commencer
- Pour envoyer des e-mails avec la fonction
mail() de PHP, cette fonction doit d'abord être activée dans la configuration PHP de votre site (option Activer la fonction mail). Voir Envoyer des e-mails depuis un script PHP (fonction mail() ou SMTP).
- Les e-mails envoyés par
mail() depuis votre site passent par une passerelle d'envoi filtrante, partagée entre les sites hébergés, qui refuse les spams les plus courants.
L'envoi direct depuis le serveur web est-il garanti ?
Lorsqu'un site envoie un e-mail directement via le serveur web, par exemple avec la fonction mail() de PHP ou via le système d'envoi natif de WordPress (wp_mail()), le message part par l'infrastructure d'envoi partagée de notre service d'hébergement mutualisé.
Ce mode d'envoi présente trois limites importantes :
- Il est partagé entre l'ensemble des sites hébergés. Sa réputation ne dépend donc d'aucun client en particulier : il suffit qu'un site voisin envoie du courrier indésirable ou soit compromis pour que la réputation se dégrade pour tout le monde.
- Il doit être autorisé par l'enregistrement SPF de votre domaine. Les fournisseurs de messagerie (Gmail, Outlook, etc.) vérifient que l'expéditeur d'un message est bien autorisé à envoyer au nom du domaine (via les enregistrements SPF et DKIM). Si le SPF de votre domaine ne contient pas
include:fwdsc.swisscenter.com, les envois de vos sites ne sont pas autorisés, et le message est souvent classé en indésirable, voire rejeté. Le SPF créé par nos outils contient déjà cette mention ; si votre messagerie est hébergée ailleurs, ajoutez-la vous-même (voir Configurer DKIM, SPF et DMARC pour éviter que vos e-mails soient classés en spam).
- Sa réputation évolue indépendamment de vous. Vous n'avez aucune maîtrise sur les autres usages de cette infrastructure.
Pour ces raisons, l'envoi d'e-mails directement depuis le serveur web est fourni « au mieux » (best effort) : nous ne pouvons pas en garantir la délivrabilité. Il convient de ne pas s'en servir pour des envois importants ou à volume.
Comment envoyer via un compte de messagerie authentifié (SMTP) ?
La méthode recommandée consiste à faire transiter les e-mails de votre site par un véritable compte de messagerie de votre domaine, en utilisant une connexion SMTP authentifiée. Le message part alors par l'infrastructure d'envoi de votre service de messagerie, qu'il soit hébergé chez nous ou chez un autre fournisseur, dont la réputation est gérée et dont les enregistrements d'authentification sont correctement configurés.
Concrètement, vous configurez votre site (ou son extension d'envoi) avec les paramètres d'un compte e-mail existant :
- Serveur SMTP sortant : pour une messagerie hébergée chez nous,
mail01.swisscenter.com (le nom exact s'affiche dans la console Apanel, voir Paramètres de messagerie pour tous les logiciels (IMAP, POP, SMTP)) ; pour une messagerie hébergée ailleurs, la valeur fournie par votre service de messagerie
- Port :
465 (chiffrement SSL/TLS, recommandé) ou 587 (chiffrement STARTTLS)
- Authentification activée, avec l'adresse e-mail complète comme identifiant et son mot de passe
- Adresse d'expéditeur correspondant à ce même compte
L'adresse utilisée comme expéditeur doit appartenir à votre domaine et correspondre au compte authentifié. Évitez d'utiliser comme expéditeur une adresse d'un autre domaine (par exemple une adresse @gmail.com), ce qui dégrade là aussi la délivrabilité.
Pour les sites WordPress
WordPress envoie par défaut ses e-mails via la fonction PHP mail(), donc par l'infrastructure partagée. Pour basculer sur un envoi SMTP authentifié, il suffit d'installer une extension dédiée telle que WP Mail SMTP (ou équivalent), puis d'y renseigner les paramètres ci-dessus. La configuration se fait en quelques minutes et améliore immédiatement la délivrabilité.
Comment configurer SPF, DKIM et DMARC pour le domaine ?
Pour une délivrabilité optimale, votre domaine doit déclarer qui est autorisé à envoyer des e-mails en son nom. Trois enregistrements, à placer dans la zone DNS du domaine, y contribuent :
- SPF (Sender Policy Framework) : indique les serveurs autorisés à envoyer du courrier pour votre domaine. En passant par le SMTP de votre service de messagerie, vos envois sont couverts par le SPF de ce service.
- DKIM (DomainKeys Identified Mail) : ajoute une signature cryptographique à chaque message, prouvant qu'il provient bien de votre domaine et qu'il n'a pas été altéré.
- DMARC (Domain-based Message Authentication, Reporting and Conformance) : définit la politique à appliquer aux messages qui échouent aux contrôles SPF/DKIM et permet de recevoir des rapports.
Si vous utilisez notre service de messagerie, la console Apanel active DKIM et crée SPF et DMARC pour vous, et un diagnostic vous indique ce qui manque : voir Configurer DKIM, SPF et DMARC pour éviter que vos e-mails soient classés en spam. Si votre messagerie est gérée ailleurs, reportez-vous à la documentation de votre fournisseur pour obtenir les valeurs exactes à renseigner.
Comment sécuriser les formulaires de vos sites ?
La sécurité des formulaires est directement liée à la délivrabilité. Un formulaire de contact mal protégé peut être détourné par des robots pour envoyer des messages indésirables en masse : c'est alors notre infrastructure d'envoi qui diffuse le spam, ce qui dégrade sa réputation et pénalise l'ensemble des clients. Protéger vos formulaires, c'est donc aussi protéger votre délivrabilité.
Quelques mesures essentielles :
- Ajoutez une protection anti-robots : un captcha (par exemple reCAPTCHA ou hCaptcha) ou, plus discret pour l'utilisateur, un champ « pot de miel » (honeypot) invisible que seuls les robots remplissent.
- Limitez le débit des envois (rate limiting) afin d'empêcher l'envoi de centaines de soumissions en quelques secondes.
- Validez et nettoyez les données côté serveur, sans vous fier uniquement aux contrôles effectués dans le navigateur.
- Protégez-vous contre l'injection d'en-têtes : un champ de formulaire ne doit jamais permettre d'insérer des en-têtes e-mail supplémentaires (destinataires cachés, etc.). Les extensions de formulaire sérieuses gèrent cela, à condition d'être correctement configurées.
- Maintenez votre CMS, vos thèmes et vos extensions à jour. La majorité des sites compromis le sont via un composant obsolète et vulnérable.
En résumé
- L'envoi direct depuis le serveur web est partagé et non garanti : à éviter pour les envois importants.
- Privilégiez l'envoi via un compte de messagerie authentifié (SMTP) de votre domaine.
- Sur WordPress, utilisez une extension telle que WP Mail SMTP.
- Assurez-vous que SPF, DKIM et DMARC sont configurés pour votre domaine.
- Sécurisez vos formulaires (anti-robots, limitation de débit, validation côté serveur, protection contre l'injection d'en-têtes, mises à jour régulières).
En cas de problème
Pour aller plus loin