07 Mar 2024
Sendermail ne fonctionne pas sur Prestashop

La fonction mail() de PHP ne marche pas sur mon Prestashop

À mon sens, l’un des problèmes les plus ennuyeux à résoudre sur un site e-commerce est l’expédition des e-mails ! Vous avez peut-être créé votre site Prestashop, tout est prêt pour accueillir les clients, et là… Après vos tests, vous ne recevez aucun e-mail depuis votre CMS. D’où vient le problème ? Je vais vous expliquer dans cet article comment faire fonctionner la fonction mail() en PHP.

Cet article est applicable aussi bien à Prestashop 1.8, 1.7, qu’à la version 1.6. Le système de configuration des e-mails dans le back-office reste inchangé au fil du temps ; seule l’interface évolue.

Vous êtes hébergé chez Ionos ? Je vais vous donner des astuces pour envoyer vos e-mails sur Prestashop avec Ionos dans cet article : Configurer sur Prestashop les mails SMTP avec Ionos.

C’est quoi la fonction mail() de PHP sur Prestashop ?

Cette fonction permet d’envoyer des e-mails depuis votre site en utilisant un simple script PHP, ce qui évite des réglages avancés pour l’expédition des e-mails (comme l’option via SMTP). Cette option est activée dès l’installation de Prestashop.

Si vous avez beaucoup de trafic et un grand volume d’e-mails à expédier, ou si vous souhaitez renforcer la sécurité, il est préférable d’utiliser les paramètres SMTP. Dans le cas contraire, la fonction PHP fera parfaitement l’affaire.

Sur les versions récentes, c’est expédié via sendermail sur le serveur et notamment /usr/sbin/sendmail.

Quels mails sont expédiés via la fonction PHP ?

Au final, ce sont tous les e-mails transactionnels de votre boutique : du message du formulaire de contact au mail de confirmation de commande, en passant par le mail de création de compte… Ils sont tous expédiés via ce système. Il est donc impératif de tester avant la mise en ligne de votre site que cela fonctionne bien.

En cas de problème, nous allons donc voir comment le résoudre dans la suite de cet article !

Vérifier les logs d’e-mails dans votre boutique Prestashop

La première étape consiste à vérifier si votre CMS crée un e-mail lors d’une action sur votre site. Pour ce faire, vous devez accéder aux paramètres avancés, puis à la section “E-mail” pour consulter la liste des e-mails envoyés.

Cette liste vous permet de visualiser tout ce qui a été expédié depuis votre boutique Prestashop, avec le destinataire, le type d’e-mail utilisé, la langue, l’objet et l’heure d’envoi. Toutes les traces de communication avec vos utilisateurs sont conservées.

En général, ils apparaissent correctement dans les logs, mais il peut arriver que les utilisateurs ne les reçoivent pas.

Liste des logs e-mail dans Prestashop
Voici une liste de mails présente dans les logs

Créer une adresse mail sur votre hébergement

Il est assez rare que le problème vienne de la solution Prestashop elle-même lorsque vous l’installez. En général, on associe ce type de problème à l’hébergement qui ne déclenche pas la fonction mail() de PHP sur le serveur.

Pratiquement toutes les offres d’hébergement incluent un droit de création d’adresses e-mail (en moyenne 5).

Dans certains cas, si vous n’avez pas créé d’adresse e-mail, cela ne déclenchera pas la fonction sur le serveur, et donc les e-mails ne seront pas envoyés !

Rendez-vous dans l’administration de votre hébergement et créez une adresse e-mail classique : contact@votrenomdedomaine.fr.

Il vous suffit ensuite d’ajouter un mot de passe et le tour est joué.

Créer une adresse mail sur OVHhttps://docs.ovh.com/fr/emails/creation-dune-adresse-e-mail/

Créer une adresse mail sur IONOShttps://www.ionos.fr/assistance/email/mail-basic-setup-configuration-de-base-de-la-messagerie/creer-une-adresse-email-dans-lespace-client/

Créer une adresse mail sur O2Switch https://faq.o2switch.fr/hebergement-mutualise/tutoriels-cpanel/comptes-courriels

J’ai récemment rencontré ce cas pour un client qui était chez Ionos avec une offre mutualisée. Après plusieurs échanges avec le support, il s’est avéré qu’il fallait créer une adresse e-mail pour activer la fonction sur l’hébergement.

OVH : La fonction mail PHP de mon Prestashop ne fonctionne pas

Vous avez correctement créé votre adresse e-mail, mais soudainement, sans prévenir, vous ne recevez plus aucun e-mail ? De même pour les clients de votre boutique Prestashop ?

Il est possible que votre compte e-mail soit inactif ou désigné comme spam chez OVH !

Permettez-moi de partager une anecdote client : l’un de mes clients, disposant d’une offre mutualisée chez OVH, a tenté d’envoyer 15 e-mails avec des pièces jointes assez lourdes. En retour, il a reçu uniquement des messages d’erreur d’envoi. Après investigation, j’ai découvert que son service d’e-mail était classé en catégorie “spam” chez OVH et que son compte était bloqué.

En cas de réception de trop nombreux e-mails avec des erreurs d’adresses ou d’expéditions en masse, les serveurs mutualisés OVH peuvent bloquer par mesure de sécurité le service d’e-mail.

Pour résoudre ce problème, vous devez vérifier l’état de votre script d’e-mail sur l’hébergement. Pour débloquer la situation, il suffit d’envoyer un message au support.

 

Spam e-mail OVH mutualisé et Prestashop
Voir l’état du service mail dans OVH

Avant de décider de débloquer votre adresse e-mail, vous pouvez identifier l’origine du problème en cliquant sur le bouton “e-mails en erreur” situé à droite (voir capture ci-dessus).

En cas de problème de spam, vous pouvez localiser la source sur votre site et mettre en place un captcha pour y remédier.

O2switch : l’envoi de mail Prestashop ne marche pas

J’ai étudié en détail le tutoriel ci-dessous pour rédiger un article plus approfondi, mettant notamment en lumière la création d’une adresse e-mail sur O2switch. Suivez ce guide !

Travaillant fréquemment avec cet hébergeur, j’ai été confronté, lors de la mise en ligne d’un site pour un client, à un problème d’envoi de mails via Prestashop.

Dans mon cas, les logs indiquaient que les e-mails étaient envoyés avec succès. De plus, j’avais créé une adresse e-mail dans le CPANEL, mais cela n’a pas résolu le problème.

Après plusieurs échanges avec le support, nous avons réussi à faire fonctionner les e-mails en activant l’envoi d’e-mails via SMTP :

activer les paramètres smtp

Voici, ci-dessous, la configuration SMTP utilisé dans le cas de mon client. Vous devez remplacer ce qui est flouté par votre nom de domaine.

Configurer le smtp sur Prestashop avec O2switch

Dans la partie serveur, vous devez indiquer le nom auquel vous êtes rattaché sur O2Switch, qui est le même que l’URL de connexion à votre interface CPANEL.

Il est normal que le champ du mot de passe soit vide. Après l’enregistrement, Prestashop le masque mais il est bien pris en compte.

Ensuite, vous devez remplacer l’e-mail de votre boutique par celui-ci dans l’onglet “Contact” > “Magasin” : no-reply@votrenomdedomaine.com.

Normalement, tout devrait être en ordre.

Si le problème persiste, n’hésitez pas à contacter le support, qui est très réactif et compétent !

Conclusion sur l’expédition des mails en PHP

La plupart du temps, cela vient donc d’une configuration sur votre hébergement. Les équipes de support sont habituées à ce genre de situations, alors n’hésitez pas à les contacter si vous n’arrivez pas à résoudre le problème.

Si vous rencontrez des problèmes de spam, je vous recommande vivement d’installer immédiatement un captcha. Je vous conseille ce module : Antispam et Faux Comptes Google Re-Captcha Avancé.

Vous ne recevez pas les mails de confirmation de commande ?

Voici un article blog pour corriger cela : https://www.matthieu-jalbert.fr/je-ne-recois-plus-les-mails-de-confirmation-de-commande-prestashop/

Vous avez besoin d’aide pour corriger le système de mail() de PHP sur Prestashop ?

– Test de l’expédition de mail
– Vérification de l’état de votre service mail
– Correction ou contact avec l’hébergeur pour correction

Vous pouvez prendre un ticket de support Prestashop pour que j’intervienne directement sur votre boutique en ligne.