Welcome, Guest
Username: Password: Remember me

TOPIC: Pb envois d'invitations ou d'envois à un groupe d'utilisateurs

Pb envois d'invitations ou d'envois à un groupe d'utilisateurs 1 year 7 months ago #94420

  • Pbroca
  • Pbroca's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 2
  • Karma: 0
Bonjour à tous,

Je vous soumets mon problème que je rencontre actuellement.

Via la méthode PHP mail(), j'essaye d'envoyer des courriers à un groupe d'utilisateurs, ou d'envoyer des invitations mais j'obtiens l'erreur suivante : ne peut pas instancier la fonction mail / l'adresse du destinataire est invalide.

Après vérification, il existe une différence d'implémentation de la fonction mail entre Windows et Unix :
Note:

The Windows implementation of mail() differs in many ways from the Unix implementation. First, it doesn't use a local binary for composing messages but only operates on direct sockets which means a MTA is needed listening on a network socket (which can either on the localhost or a remote machine).

Second, the custom headers like From:, Cc:, Bcc: and Date: are not interpreted by the MTA in the first place, but are parsed by PHP.

As such, the to parameter should not be an address in the form of "Something <This email address is being protected from spambots. You need JavaScript enabled to view it.>". The mail command may not parse this properly while talking with the MTA.

Du coup, la forme d'adresse "User <email>" utilisé dans le code php n'est pas reconnue sous Windows et l'envoi de messages plante.
Si on utilise juste l'email, cela se passe bien.

Est-ce un problème connu ? Pourquoi ne pas uniformiser le code pour qu'il n'y ait pas de différence de comportement entre les systèmes Windows et Unix ?

Du coup, cela me fait modifier quelques fichiers systématiquement à chaque mise à jour :
- Pour l'envoi de courriers à un groupe d'utilisateurs, dans le fichier \application\controllers\admin\usergroups.php.

- Pour l'envoi d'invitations, dans le fichier \application\controllers\admin\tokens.php.

Par contre, la fonction de récupération d'un mot de passe oublié fonctionne car on saisit juste une adresse mail et l'interprêtation se passe bien.

Suis-je le seul à être dans ce cas là ? Existe-t-il une astuce pour contourner ce problème ? Ou je me trompe complétement ?

Merci d'avance pour vos réponses.

Cordialement,

Configuration :
Apache 2.0.58 sous Windows
PHP 5.2.5
LimeSurvey Version 2.00+ Build 130325
Email method : PHP mail()
The administrator has disabled public write access.

Pb envois d'invitations ou d'envois à un groupe d'utilisateurs 1 year 7 months ago #94422

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 6551
  • Thank you received: 869
  • Karma: 257
Salut,

Utiliser SMTP

Denis
The administrator has disabled public write access.
The following user(s) said Thank You: Pbroca

Pb envois d'invitations ou d'envois à un groupe d'utilisateurs 1 year 7 months ago #94427

  • Pbroca
  • Pbroca's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 2
  • Karma: 0
Je te remercie pour ta réponse.

Je trouve que changer de méthode Mail est discutable juste pour contourner cela.
Pour ma part, je trouve que c'est un bug : quelque soit l'environnement, on devrait pouvoir utiliser la méthode Mail que l'on souhaite.

Bref sinon, j'ai testé par la méthode SMTP, voici ce qu'il en ressort :
- Cela fonctionne bien pour envoyer des invitations aux questionnaires => OK
- Par contre, cela ne fonctionne pas pour envoyer un mail à un groupe d'utilisateurs.
Je détaille : lorsque le groupe est de 1 ou plusieurs membres, un mail arrivera au 1er destinataire de la liste mais les autres ne recevront rien.

Pourquoi ? Car dans le fichier \application\controllers\admin\usergroups.php, la fonction SendEmailMessage utilisée possède un argument $to.
D'après la documentation de cette fonction, on doit lui passer une chaîne pour une adresse unique et un tableau pour plusieurs adresses.
Dans ce cas précis, c'est mal géré car on lui passe une chaîne avec plusieurs adresses dedans au lieu d'un tableau.

Dans le cas des invitations, cela fonctionne bien car on lui passe un tableau par défaut.

=> quelqu'un peut me confirmer que c'est bien un bug ?

Merci d'avance.

Cordialement,
Last Edit: 1 year 7 months ago by Pbroca.
The administrator has disabled public write access.

Pb envois d'invitations ou d'envois à un groupe d'utilisateurs 1 year 7 months ago #94436

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 6551
  • Thank you received: 869
  • Karma: 257
Salut,

Si tu détecte un bug, alors n'hésite pas à faire un rapport de bug : www.limesurvey.org/fr/communaute/suivi-de-bugs

De plus 2 des développeurs utilisent des versions de Windows, il me semble bien que l'un à un IIS. Cela lui permettras de vérifier (de souvenir, j'ai déjà utiliser du PHP mail avec PhpMailer avec l'adresse et l'utilisateur mais bon ... je suis pas spécialiste windows). Maintenant, si j'ai un serveur avec le PHP qui n'a pas la fonction mail : je ne peux pas utiliser PHP mail même si je le veux ....

Dailleurs le fait d'avoir pu tester la fonction SMTP t'as permis peut être de mieux cerner le bug : donc je réitère : bug report.

Denis
The administrator has disabled public write access.
Moderators: Nickko
Time to create page: 0.109 seconds
Donation Image