"Email de test" ne fonctionne pas avec localhost

  • scoubinaire
  • Auteur du sujet
  • Membre elite
  • Membre elite
Plus d'informations
il y a 3 ans 10 mois #2811 par scoubinaire
"Email de test" ne fonctionne pas avec localhost a été créé par scoubinaire
Bonjour Yan, j'ai découvert ce problème mais aussi un moyen de le contourner
Niveau GRR 341D PHP 7.3.10 et 7.4.4 on localhost
La fonction "Email de test" ne fonctionne pas avec les adresses de mail xxx@localhost
Elle renvoie le message "L'adresse mail de test n'est pas valide"
mais avec une adresse xxx@localhost.yy cela fonctionne correctement
Le problème est situé dans admin_config3.php
ligne 135 :
$mail_test = filter_var(clean_input($_GET),FILTER_VALIDATE_EMAIL);
if (!$mail_test){
echo "L'adresse mail de test n'est pas valide";
die();
}
FILTER_VALIDATE_EMAIL est localisé dans phpmailer/class.phpmailer.php
D'après Internet, plusieurs Internautes ont remarqué que FILTER_VALIDATE_EMAIL ne supportait pas les "dotless domains".
J'avais aussi remarqué ça sur d'autres logiciels comme Joomla.
--
Pour travailler en mode localhost, j'utilise XAMPP avec le serveur de messagerie MERCURY activé
J'ai défini dans Mercury des adresses emailx. Ceci définit automatiquement les adresses emailx.localhost et je définis donc des adresses mails emailx.localhost dans ma messagerie personnelle ThunderBird.
Alors je me suis demandé si l'on ne pouvait pas utiliser dans Mercury un autre nom de domaine comme localhost.yy
J'ai remarqué que dans le fichier Config de Mercury (mercury.ini) on trouvait :
[Domains]
# NetWare Server Domain name
localhost : localhost
localhost : localhost.net
localhost : localhost.org
localhost : localhost.com
J'ai donc essayé d'envoyer des messages à emailx@localhost.net ou emailx@localhost.org ou emailx@localhost.com et ça fonctionne dans tous les cas.
En résumé : j'ai donc défini des adresses emailx dans Mercury et défini les adresses correspondantes emailx@localhost dans ThunderBird
Dans GRR, dans "Email de test" j'utilise emailx@localhost.net (ou .org ou .net) et ça fonctionne dans tous les cas !
Il n'y a pas besoin de définir emailx@localhost.com (ou .org ou .net) dans ThunderBird emailx@localhost est suffisant.
Cordialement, Jean-Pierre

Connexion ou Créer un compte pour participer à la conversation.

  • Yan
  • Developpeur GRR
  • Developpeur GRR
Plus d'informations
il y a 3 ans 10 mois #2813 par Yan
Bonjour Jean-Pierre,
et merci pour ton analyse fouillée.
Effectivement j’ai été un peu vite en filtrant les données avec la fonction standard de php qui rejette les adresses mail en localhost.
Le hack que tu donnes est intéressant et je l’inclurais bien dans la documentation.
Ou alors je reprends la fonction locale de validation de l’adresse mail en procédant par cas.
Cordialement
Yan

Connexion ou Créer un compte pour participer à la conversation.

Modérateurs: Yan