Introduction

Dans la page Configuration générale, panneau Serveur, il existe une option pour sélectionner un agent de distribution du courrier. Le réglage par défaut est PHP Mail. Si cela ne fonctionne pas, il peut être conseillé d'utiliser SMTP. Celui-ci utilise le même mécanisme que votre application de messagerie. Il y a plusieurs paramètres à configurer correctement. En résumé :

Allez dans Configuration globale et sélectionnez l'onglet Serveur. Recherchez le panneau Courrier en bas du formulaire.

  • Agent de messagerie réglé sur SMTP. Plusieurs autres champs apparaissent
  • Hôte SMTP Il s'agit de localhost par défaut, mais cela a peu de chances de fonctionner. Il doit être réglé sur l'hôte qui gère votre courrier sortant, par exemple un compte Gmail.
  • Port SMTP La valeur par défaut est 25. Vérifiez que c'est bien la valeur attendue par votre hôte SMTP.
  • Sécurité SMTP La valeur par défaut est Aucune mais vous aurez probablement besoin de STARTTLS.
  • Authentification SMTP Cela peut ne pas être nécessaire si vous utilisez un réseau domestique qui n'exige pas d'authentification pour les e-mails sortants. Sinon :
  • Identifiant SMTP et Mot de passe SMTP saisissez les valeurs que vous utilisez pour accéder à votre compte e-mail sur internet.
  • Sélectionner le bouton Envoyer un e-mail de test.

Utiliser Gmail

Si vous disposez d'un compte Gmail fonctionnel, vous pouvez utiliser Gmail comme serveur de messagerie en le configurant dans la configuration générale.

Dans l'onglet serveur, réglez les paramètres suivants :

  • Agent de messagerie : SMTP
  • Hôte SMTP : smtp.gmail.com
  • Port SMTP 465
  • Sécurité SMTP : SSL/TLS
  • Authentification SMTP : Oui
  • Renseignez les deux lignes suivantes avec vos informations. Vous devez utiliser un mot de passe spécifique à l'application (ASP), décrit ci-dessous.
  • Identifiant SMTP : votre identifiant gmail
  • Mot de passe SMTP : le mot de passe spécifique à l'application (ASP) que vous avez généré, décrit ci-dessous.

Les combinaisons suivantes fonctionnent également :

  • Port SMTP 587
  • Sécurité SMTP : STARTTLS
  • Port SMTP 25
  • Sécurité SMTP : STARTTLS

Le module SSL n'a pas besoin d'être activé dans Apache.

L'extension OpenSSL doit être activée dans PHP. Les détails sont disponibles sur la page d'installation de php.net.

Si vous utilisez WAMP sous Windows, le module openssl n'est pas activé par défaut et vous devez l'activer. Pour cela :

  1. Ouvrir le fichier php.ini et décommenter la ligne extension=php_openssl.dll en supprimant le point-virgule ; au début de la ligne.
  2. Enregistrer le fichier php.ini et redémarrer le service Apache.

Notez que si vous utilisez la validation en 2 étapes dans Gmail, vous devez ajouter un nouveau mot de passe dans Paramètres - Comptes - Modifier les paramètres du compte - Autres paramètres du compte Google - Sécurité - Validation en 2 étapes - Gérer vos mots de passe spécifiques à l'application.

Lorsque le nouveau mot de passe spécifique à l'application (ASP) est présenté par groupes de quatre caractères séparés par des espaces, assurez-vous de NE PAS saisir les espaces dans le mot de passe SMTP des paramètres du serveur de messagerie dans Joomla.

Débogage

Si l'e-mail n'est pas envoyé ou n'arrive jamais :

  • Sélectionner Plugins depuis le Panneau d'administration → panneau Site.

  • Trouver et activer le plugin Système - Débogage et le configurer :

  • Définir Groupes autorisés sur Super Utilisateurs pour restreindre la sortie de débogage à votre propre session de connexion, à la fois dans l'administration et sur le site. Si vous ne souhaitez pas vous connecter au site en tant que Super Utilisateur, créer un groupe d'utilisateurs unique pour vos activités de test et sélectionner ce groupe d'utilisateurs dans la liste des groupes d'utilisateurs autorisés.

  • Enregistrer & Fermer

  • Sélectionner Configuration globale depuis le Panneau d'administration → panneau Site.

  • Dans l'onglet Système, définir Débogage système sur Oui.

  • Dans l'onglet Serveur, définir Rapport d'erreurs sur Maximum.

  • Dans l'onglet Journalisation, noter le contenu de Chemin vers le dossier de journalisation, généralement [quelque chose]/administrator/logs.

  • Définir Journaliser presque tout sur Oui.

  • Dans le panneau Journalisation personnalisée, définir le champ Catégories de journalisation sur mail (sans guillemets).

  • Enregistrer pour sauvegarder les paramètres de débogage.

  • Dans l'onglet Serveur, sélectionner le bouton Envoyer un e-mail de test au bas de la page.

S'il y a des problèmes dans le code lors des tests, vous devriez obtenir une pile d'appels (Stack Trace) qui vous aidera, vous ou d'autres, à diagnostiquer le problème. De plus, recherchez un fichier dans le dossier des journaux portant un nom comme administrator/logs/everything.php et ouvrez-le avec un éditeur de texte. Cela peut aider à voir ce qui a été enregistré lors de l'envoi du message.