Lorsqu'un client passe une commande sur votre boutique PrestaShop, il s'attend à recevoir rapidement une confirmation par email. Pourtant, de nombreux e-commerçants français constatent que ces messages n'arrivent jamais ou atterrissent systématiquement dans les spams. Le problème ne vient pas de PrestaShop lui-même, mais de la manière dont les emails sont envoyés par défaut.
Par défaut, PrestaShop utilise la fonction PHP mail() de votre serveur d'hébergement pour envoyer les emails transactionnels. Cette approche présente deux inconvénients majeurs : d'une part, les emails sont envoyés depuis l'adresse IP de votre serveur sans aucune authentification (SPF/DKIM), ce qui déclenche des soupçons auprès des filtres anti-spam ; d'autre part, la réputation de cette adresse IP est généralement mauvaise puisqu'elle est partagée avec des centaines d'autres sites hébergés au même endroit.
La bonne nouvelle : il existe une solution simple et peu coûteuse. En connectant PrestaShop à un fournisseur d'email externe (ESP) et en configurant correctement les enregistrements DNS de votre domaine, vous pouvez ramener vos emails transactionnels dans les boîtes de réception de vos clients.
Pourquoi les emails transactionnels de PrestaShop ne partent pas
Avant de chercher à corriger le problème, il faut en comprendre la cause. PrestaShop, plateforme e-commerce française très populaire, envoie par défaut les emails (confirmations de commande, mots de passe oubliés, etc.) via la fonction PHP mail() du serveur. Cette méthode était acceptable il y a 10 ans, mais elle ne correspond plus aux normes actuelles de sécurité et de délivrabilité des emails.
Les filtres anti-spam des grands fournisseurs de messagerie (Gmail, Orange, Free, La Poste, etc.) utilisent plusieurs critères pour juger de la légitimité d'un email :
- L'authentification du domaine : SPF, DKIM et DMARC. Si votre email ne possède pas ces enregistrements, ou s'ils ne sont pas correctement configurés, le message sera marqué comme suspect.
- La réputation de l'adresse IP : si vous envoyez depuis l'IP partagée de votre hébergeur, celle-ci est probablement déjà inscrite sur des listes de serveurs compromis ou spammeurs.
- Le domaine de l'adresse From : si l'email semble provenir d'un petit hébergeur générique, les filtres y verront un signal de faible confiance.
En utilisant PHP mail(), vous accumulez tous ces défauts à la fois. D'où les confirmations de commande qui disparaissent dans les spams ou ne partent jamais.
Vérifier votre configuration SMTP actuelle dans PrestaShop
Avant de passer à la solution, vérifiez ce qui est configuré en ce moment. Connectez-vous à votre administration PrestaShop et allez dans Paramètres > Paramètres avancés > Email.
Vous trouverez une section « Serveur SMTP » qui propose trois options :
- Ne pas utiliser SMTP (envoyer par mail()) — c'est le choix par défaut et la source de vos problèmes.
- Utiliser un serveur SMTP local — une option rarement utilisée.
- Utiliser un serveur SMTP externe — c'est celle qu'il faut activer.
Si vous avez choisi « Ne pas utiliser SMTP », vous avez trouvé la raison pour laquelle vos emails ne partent pas. La correction passe par l'étape suivante.
Connecter PrestaShop à un fournisseur d'email externe (ESP)
Un fournisseur d'email (ESP pour Email Service Provider) vous met à disposition un serveur SMTP fiable et une adresse IP réputée pour envoyer vos emails. Les solutions populaires en France incluent Brevo (anciennement Sendinblue), Mailjet et Sarbacane. Ces plateformes françaises offrent des tarifs avantageux pour les petits et moyens sites e-commerce.
Voici comment configurer PrestaShop pour utiliser un ESP externe :
- Créez un compte auprès de l'ESP de votre choix. Brevo et Mailjet proposent des plans gratuits ou très bon marché pour débuter.
- Récupérez les paramètres de connexion SMTP fournis par l'ESP : nom du serveur (souvent
smtp.brevo.comousmtp.mailjet.com), port (généralement 587 ou 465), identifiant et mot de passe. - Retournez dans PrestaShop > Paramètres > Email, cochez « Utiliser un serveur SMTP externe » et remplissez les champs avec les paramètres SMTP.
- Définissez le « Domaine d'envoi » : il doit absolument être votre propre domaine (ex.
noreply@monsite.fr), pas un domaine générique. - Testez en envoyant un email de test depuis la même interface.
Cette première étape règle déjà une bonne part du problème, car vous utilisez désormais une adresse IP de qualité. Mais ce n'est pas encore suffisant : vous devez aussi configurer les enregistrements DNS de votre domaine.
Configurer SPF, DKIM et DMARC pour votre domaine
Maintenant que vous envoyez via un SMTP externe, vous devez prouver à Gmail, Orange, Free, La Poste et autres que ces emails viennent réellement de vous. Pour cela, vous devez ajouter trois enregistrements DNS à votre domaine.
SPF (Sender Policy Framework) : c'est un enregistrement DNS qui dit « ces adresses IP sont autorisées à envoyer des emails au nom de mon domaine ». Chaque ESP fournit une ligne SPF à ajouter dans les paramètres DNS de votre domaine. Par exemple, si vous utilisez Mailjet, vous devez ajouter quelque chose comme :
v=spf1 include:mailjet.com ~allDKIM (DomainKeys Identified Mail) : c'est une signature cryptographique ajoutée à chaque email. Vous devez générer une paire clé publique / clé privée via votre ESP et ajouter la clé publique dans les enregistrements DNS. L'ESP vous guide généralement dans cette démarche.
DMARC (Domain-based Message Authentication, Reporting & Conformance) : c'est un enregistrement qui dit à Gmail et autres « si SPF ou DKIM échouent, voici ce que je veux que tu fasses ». Pour débuter, vous pouvez utiliser une politique souple (p=none) puis passer à une politique stricte (p=quarantine ou p=reject) une fois tous vos emails authentifiés.
La plupart des ESP proposent une interface pour vérifier que ces enregistrements sont correctement en place. Une fois confirmés par le système, vos emails auront une bien meilleure chance d'arriver en boîte de réception.
Tester et monitorer vos emails transactionnels
Une fois tout configuré, testez réellement vos emails avant de les envoyer en production à vos clients. Voici le processus recommandé :
- Passez une commande de test sur votre boutique PrestaShop et vérifiez que vous recevez l'email de confirmation. Consultez les en-têtes bruts du message pour voir si SPF et DKIM passent.
- Utilisez un outil gratuit d'inbox placement (comme celui-ci) pour envoyer un email d'essai à travers vos seed-adresses chez les grands fournisseurs français. Vous verrez s'il arrive en Inbox ou Spam.
- Vérifiez les logs de votre ESP pour vous assurer qu'aucun email n'est rejeté ou banni.
- Une fois en production, continuez à monitorer vos taux de délivrabilité via le tableau de bord de votre ESP.
Si vous trouvez des emails qui atterrissent dans Spam malgré tout, cela peut signifier que votre contenu pose problème (liens suspects, trop de majuscules, etc.). Dans ce cas, consultez les rapports de spam fournis par les fournisseurs.
Autres points d'attention
Avant de conclure, quelques détails supplémentaires qui peuvent faire toute la différence :
- Adresse From : utilisez toujours une adresse From qui correspond à votre domaine (ex.
noreply@monsite.froucontact@monsite.fr). Ne mélangez pas domaines ou adresses aléatoires. - Reply-To : configurez une adresse Reply-To valide où vos clients peuvent vous répondre. PrestaShop gère généralement ce champ automatiquement.
- Unsubscribe : même pour les emails transactionnels (confirmations, factures), il faut laisser une possibilité de désabonnement, exigence de la régulation CNIL en France.
- Contenu texte et HTML : envoyez toujours une version texte parallèle à votre email HTML. Certains filtres anti-spam se méfient des emails HTML-only.
Est-ce que PrestaShop propose nativement une intégration avec Brevo ou Mailjet ?
Combien de temps faut-il pour que mes emails recommencent à arriver après configuration ?
Dois-je configurer SPF/DKIM/DMARC pour chaque domaine de mon PrestaShop ?
contact@monsite.fr et contact@autresite.fr, vous devez ajouter les enregistrements pour les deux domaines.