Projet

Général

Profil

Actions

Anomalie #931

fermé

envoi email adherent attaché à un parent

Ajouté par Fr cero il y a environ 9 ans. Mis à jour il y a environ 9 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
Emails
Version cible:
-
Début:
12/10/2015
Echéance:
% réalisé:

100%

Temps estimé:
Version utilisée:

Description

Lorsqu’on envoie un courriel (php mail en brut ou html)à un adhérent attaché à un autre (donc sans mail ni adresse postale), le mail est bien envoyé à l’administrateur (si option cochée) mais l’adhérent parent ne reçoit pas le mail.
Galette signale dans les logs PHP Notice: Trying to get property of non-object in /home/xxxx/www/galette/lib/Galette/Core/Mailing.php on line 265

François

Mis à jour par Johan Cwiklinski il y a environ 9 ans

  • Statut changé de Nouveau à Commentaire

Visiblement, cela est dû à la manière d'envoyer le courriel. Quelle est la procédure qui a été suivie ?

Mis à jour par Fr cero il y a environ 9 ans

Je viens de refaire un test à partir de rien: Je crée un adhérent actif (sans cotisation) avec mail et adresse postale, puis je crée un autre adhérent actif attaché au précédent, puis dans la liste des adhérents, je coche ce dernier seulement puis je clique sur envoyer email, le mail part normalement sans affichage d'erreur, l’administrateur de Galette le reçoit bien mais rien à l’adhérent.( ni dans les SPAMS) Si je consulte 'GESTION de E-MAILINGS" le bouton est vert, dans "Détails" je vois que le champs "A" n'est pas renseigné et dans "utiliser template" j'ai l'info comme quoi le destinataire n'existe pas. Enfin si je mets l'adhérent attaché dans un groupe dans les logs j'ai le WARNING indiquée qui apparait. (j'utilise la 8.2 et aussi testé avec la nigntly et le site est chez OVH.en php 5.4.38).

Mis à jour par Johan Cwiklinski il y a environ 9 ans

Après avoir testé rapidement ; je ne reproduit apparemment pas ce problème. Il faudrait ajouter à la ligne 265 de galette/lib/Galette/Core/Mailing.php les lignes :

var_dump($member);
exit;

Cela affichera le contenu de la fiche membre qui pose problème (et notamment de la présence ou non d'un parent, ainsi que les coordonnées de ce dernier) ; et stoppera l'exécution du code.

Mis à jour par Fr cero il y a environ 9 ans

le dump me donne ceci (extraits seulement)
object(Galette\Entity\Adherent)#98 (52) { ["_id":"Galette\Entity\Adherent":private]=> string(3) "401"
["_title":"Galette\Entity\Adherent":private]=> NULL
......
["_address":"Galette\Entity\Adherent":private]=> string(0) ""
["_address_continuation":"Galette\Entity\Adherent":private]=> string(0) ""
["_zipcode":"Galette\Entity\Adherent":private]=> string(0) ""
["_town":"Galette\Entity\Adherent":private]=> string(0) ""
["_country":"Galette\Entity\Adherent":private]=> string(0) ""
["_phone":"Galette\Entity\Adherent":private]=> string(0) ""
["_gsm":"Galette\Entity\Adherent":private]=> string(0) ""
["_email":"Galette\Entity\Adherent":private]=>
......
["_parent":"Galette\Entity\Adherent":private]=> object(Galette\Entity\Adherent)#101 (52) { ["_id":"Galette\Entity\Adherent":private]=> string(3) "400"
......
["_email":"Galette\Entity\Adherent":private]=> string(19) ""
etc
Il y a bien le parent avec son adresse postale et son mail,

Mis à jour par Johan Cwiklinski il y a environ 9 ans

OK, merci. Du coup, le warning n'est pas lié à ce problème. Bref.

J'ai identifié un problème, un peu plus loin dans le process ; qui annule ce qui est fait là. Voici un correctif pour ce souci là :

diff --git a/galette/lib/Galette/Core/Mailing.php b/galette/lib/Galette/Core/Mailing.php
index 4a6a5b5..ecdad82 100644
--- a/galette/lib/Galette/Core/Mailing.php
+++ b/galette/lib/Galette/Core/Mailing.php
@@ -236,8 +236,14 @@ class Mailing extends GaletteMail
     public function send()
     {
         $m = array();
-        foreach ( $this->_mrecipients as $member ) {
-            $m[$member->email] = $member->sname;
+        foreach ($this->_mrecipients as $member) {
+            $email = $member->email;
+            //if member mail is missing but there is a parent,
+            //take the parent email.
+            if (!$email && $member->hasParent()) {
+                $email = $member->parent->email;
+            }
+            $m[$email] = $member->sname;
         }
         parent::setRecipients($m);
         return parent::send();

Les mails ne partent pas ici ; mais j'ai un souci de configuration de ce côté là, ce n'est pas uniquement Galette. À voir donc si ça solutionne le souci de ton côté.

Mis à jour par Johan Cwiklinski il y a environ 9 ans

Johan Cwiklinski a écrit :

Les mails ne partent pas ici ; mais j'ai un souci de configuration de ce côté là, ce n'est pas uniquement Galette. À voir donc si ça solutionne le souci de ton côté.

J'ai entre temps réparé mon problème d'envoi, les mails partent bien ici.

Mis à jour par Fr cero il y a environ 9 ans

Trop fort Johan ! Après application des modifs, les mails partent bien. Dans la gestion emailing il demeure que le champs A: reste vide mais ça n'a pas d'autre incidence à part le fait qu'on a pas d'historique de qui a reçu quoi. Si la modif n'est pas trop compliquée elle serait la bienvenue sinon on fera avec.

Mis à jour par Johan Cwiklinski il y a environ 9 ans

  • Statut changé de Commentaire à Résolu
  • % réalisé changé de 0 à 100

Mis à jour par Johan Cwiklinski il y a environ 9 ans

  • Catégorie mis à Emails
  • Assigné à mis à Johan Cwiklinski
  • % réalisé changé de 100 à 0

Fr cero a écrit :

Dans la gestion emailing il demeure que le champs A: reste vide

Voir le commit 866d83a5 ;)

Mis à jour par Johan Cwiklinski il y a environ 9 ans

  • % réalisé changé de 0 à 100

Mis à jour par Johan Cwiklinski il y a environ 9 ans

  • Statut changé de Résolu à Fermé
Actions

Formats disponibles : Atom PDF