Project

General

Profile

Actions

Anomalie #931

closed

envoi email adherent attaché à un parent

Added by Fr cero about 9 years ago. Updated about 9 years ago.

Status:
Fermé
Priority:
Normal
Category:
Emails
Target version:
-
Start date:
10/12/2015
Due date:
% Done:

100%

Estimated time:
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

Actions #1

Updated by Johan Cwiklinski about 9 years ago

  • Status changed from Nouveau to Commentaire

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

Actions #2

Updated by Fr cero about 9 years ago

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).

Actions #3

Updated by Johan Cwiklinski about 9 years ago

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.

Actions #4

Updated by Fr cero about 9 years ago

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,

Actions #5

Updated by Johan Cwiklinski about 9 years ago

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é.

Actions #6

Updated by Johan Cwiklinski about 9 years ago

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.

Actions #7

Updated by Fr cero about 9 years ago

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.

Actions #8

Updated by Johan Cwiklinski about 9 years ago

  • Status changed from Commentaire to Résolu
  • % Done changed from 0 to 100
Actions #9

Updated by Johan Cwiklinski about 9 years ago

  • Category set to Emails
  • Assignee set to Johan Cwiklinski
  • % Done changed from 100 to 0

Fr cero a écrit :

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

Voir le commit 866d83a5 ;)

Actions #10

Updated by Johan Cwiklinski about 9 years ago

  • % Done changed from 0 to 100
Actions #11

Updated by Johan Cwiklinski about 9 years ago

  • Status changed from Résolu to Fermé
Actions

Also available in: Atom PDF