Pas de mail au modérateur (localhost uniquement)

  • scoubinaire
  • Topic Author
  • Elite Member
  • Elite Member
More
7 years 1 month ago #792 by 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

Please Log in or Create an account to join the conversation.

  • Yan
  • Developpeur GRR
  • Developpeur GRR
More
7 years 1 month ago #794 by 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

Please Log in or Create an account to join the conversation.

  • scoubinaire
  • Topic Author
  • Elite Member
  • Elite Member
More
7 years 1 month ago #800 by scoubinaire
Replied by scoubinaire on topic 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); }

Please Log in or Create an account to join the conversation.

  • Yan
  • Developpeur GRR
  • Developpeur GRR
More
7 years 1 month ago #802 by 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
The following user(s) said Thank You: scoubinaire

Please Log in or Create an account to join the conversation.

  • scoubinaire
  • Topic Author
  • Elite Member
  • Elite Member
More
7 years 1 month ago - 7 years 1 month ago #804 by scoubinaire
Replied by scoubinaire on topic 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
Last edit: 7 years 1 month ago by Yan.
The following user(s) said Thank You: Yan

Please Log in or Create an account to join the conversation.

Moderators: Yan