Bienvenue, Invité
Nom d'utilisateur : Mot de passe : Se souvenir de moi

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

Pb envois d'invitations ou d'envois à un groupe d'utilisateurs il y a 1 an 7 mois #94420

  • Pbroca
  • Portrait de Pbroca
  • Hors ligne
  • Fresh Lemon
  • Messages : 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 <Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.>". 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()
L'administrateur a désactivé l'accès en écriture pour le public.

Pb envois d'invitations ou d'envois à un groupe d'utilisateurs il y a 1 an 7 mois #94422

  • DenisChenu
  • Portrait de DenisChenu
  • Hors ligne
  • Moderator Lime
  • Messages : 6551
  • Remerciements reçus 869
  • Karma: 257
Salut,

Utiliser SMTP

Denis
L'administrateur a désactivé l'accès en écriture pour le public.
Cet utilisateur a été remercié pour son message par: Pbroca

Pb envois d'invitations ou d'envois à un groupe d'utilisateurs il y a 1 an 7 mois #94427

  • Pbroca
  • Portrait de Pbroca
  • Hors ligne
  • Fresh Lemon
  • Messages : 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,
Dernière édition: il y a 1 an 7 mois par Pbroca.
L'administrateur a désactivé l'accès en écriture pour le public.

Pb envois d'invitations ou d'envois à un groupe d'utilisateurs il y a 1 an 7 mois #94436

  • DenisChenu
  • Portrait de DenisChenu
  • Hors ligne
  • Moderator Lime
  • Messages : 6551
  • Remerciements reçus 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
L'administrateur a désactivé l'accès en écriture pour le public.
Modérateurs: Nickko
Temps de génération de la page : 0.129 secondes
Donation Image