Anomalie #931
ferméenvoi 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
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) "xxxxxxxx@gmail.com"
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
Appliqué par commit 4c042b7f096e3f6a9e7bc109c6f1a74812f36026.
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 ;)