Anomalie #931
closedenvoi email adherent attaché à un parent
100%
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
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 ?
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).
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.
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) "xxxxxxxx@gmail.com"
etc
Il y a bien le parent avec son adresse postale et son mail,
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é.
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.
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.
Updated by Johan Cwiklinski about 9 years ago
- Status changed from Commentaire to Résolu
- % Done changed from 0 to 100
Appliqué par commit 4c042b7f096e3f6a9e7bc109c6f1a74812f36026.
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 ;)
Updated by Johan Cwiklinski about 9 years ago
- Status changed from Résolu to Fermé