Pas de mail au modérateur (localhost uniquement)

  • scoubinaire
  • Auteur du sujet
  • Membre elite
  • Membre elite
Plus d'informations
il y a 6 ans 7 mois #792 par scoubinaire
Pas de mail au modérateur (localhost uniquement) a été créé par scoubinaire
GRR340RC2
Bonjour, ceci n'affecte que les sites GRR installés en localhost
GRR devrait accepter les adresses mails xxxxx@localhost
.
Pour faire mes tests de GRRxxx RCx, j'ai installé GRR sur mon PC en localhost sous xampp. Pour gérer les mails, j'ai activé le serveur local de mail Mercury et défini 2 adresses mail : email1 pour un Usager et email2 pour un Administrateur. Les adresses mail correspondantes deviennent automatiquement mail1@localhost et email2@localhost et ces mails peuvent ensuite être récupérés dans, par exemple, Thunderbird.
Si une ressource doit être modérée, l'usager reçoit bien le messsage l'indiquant mais l'administrateur ne reçoit aucun message
.
Le problème est localisé dans include/functions.inc.php derrière
if ($action == 5)
{
$mail_admin = find_user_room ($room_id);
$destinataire = "";
if (count($mail_admin) > 0) ===> count =0 mais devrait être à =1
.
function find_user_room ($id_room) appelle function validate_email ($email) : cette fonction valide correctement les adresses mail xxxxx@aaaaa.bbb mais pas xxxxx@aaaaa (ce qui est tout à fait normal), mais je pense qu'il faudrait qu'elle accepte aussi xxxxx@localhost
Juste comme bypass, j'ai ignoré la function validate_email ($email) avec
validate_email ($email) { return true; }
et l'administrateur reçoit bien le mail de modération

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

  • Yan
  • Developpeur GRR
  • Developpeur GRR
Plus d'informations
il y a 6 ans 7 mois #794 par Yan
plutôt que neutraliser la fonction, pouvez-vous tester le code suivant :
Code:
function validate_email ($email) { $atom = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]'; // caractères autorisés avant l'arobase $domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // caractères autorisés après l'arobase (nom de domaine) $regex = '/^' . $atom . '+' . '(\.' . $atom . '+)*' . '@' . '(' . $domain . '{1,63}\.)+' . $domain . '{2,63}$/i'; $regex2 = '/^' . $atom . '+' . '(\.' . $atom . '+)*' . '@' . 'localhost'; if (preg_match($regex, $email)) return true; else return preg_match($regex2, $email); }
et nous dire si cela répond à votre problème ?
En effet, il semble que les filtres php ne prennent toujours pas en compte les adresses locales.
Cordialement,
YN

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

  • scoubinaire
  • Auteur du sujet
  • Membre elite
  • Membre elite
Plus d'informations
il y a 6 ans 7 mois #800 par scoubinaire
Réponse de scoubinaire sur le sujet Pas de mail au modérateur (localhost uniquement)
Bonjour, c'est bizarre, ça ne fonctionne pas
tout se passe comme si preg_match($regex2, $email); renvoyait false et pourtant on passe bien dessus
Avec ce code, on voit que la ligne echo / exit n'est pas exécutée
$regex2 = '/^' . $atom . '+' . '(\.' . $atom . '+)*' . '@' . 'localhost';
if (preg_match($regex2, $email))
{ echo('aaa'); exit($email); }

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

  • Yan
  • Developpeur GRR
  • Developpeur GRR
Plus d'informations
il y a 6 ans 7 mois #802 par Yan
C'est peut-être mon expression régulière qui ne convient pas :unsure:
pouvez-vous essayer celle-ci :
Code:
$regex2 = '/^' . $atom . '+' . '(\.' . $atom . '+)*' . '@' . 'localhost/i';
si ça ne marche toujours pas, il faudra que je révise...

Merci pour vos tests
Les utilisateur(s) suivant ont remercié: scoubinaire

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

  • scoubinaire
  • Auteur du sujet
  • Membre elite
  • Membre elite
Plus d'informations
il y a 6 ans 7 mois - il y a 6 ans 7 mois #804 par scoubinaire
Réponse de scoubinaire sur le sujet Pas de mail au modérateur (localhost uniquement)
C'est bon, ça marche :) et pourtant j'avais bien mis localhost en minuscules dans mes adresses mail
Merci beaucoup
Dernière édition: il y a 6 ans 7 mois par Yan.
Les utilisateur(s) suivant ont remercié: Yan

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

Modérateurs: Yan