Mes envois de mails clients doublonnent !

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Mes envois de mails clients doublonnent !

    Bonjour,

    Mon environnement : J 3.9.11, php 7, JFactory

    Côté "admin", mes réglages de mails fonctionnent -cf. mes tests d'envoi- soit en utilisant "php mail", soit avec "Sendmail" (un test de fonctionnement avec Smtp ne marche pas, pb d'authentification : je ne l'utilise donc pas pour l'instant).

    Côté "front-end" : quand j'envoie un mail à un utilisateur, le mail arrive sans problème ... mais il doublonne systématiquement (le client en reçoit 2 exemplaires dans la foulée). J'ai lu la doc, vu les forums, mais je ne trouve pas d'explication et surtout de voie de correction.

    Voici les lignes écrites :

    Code PHP:
    $mailer JFactory::getMailer();
    $config JFactory::getConfig();
    $sender = array($config->get'mailfrom' ),$config->get'fromname' ) );
    $mailer->setSender($sender);
    $subject "Votre réservation ...";
    $user JFactory::getUser();
    $recipient $user->email;
    $mailer->addRecipient($recipient);
    $mailer->setSubject($subject);
    $body "<br /><br />Madame, Monsieur, <br /><br />Nous vous confirmons votre réservation ...etc...";
    $mailer->Encoding 'base64';
    $mailer->isHTML(TRUE);
    $mailer->setBody($body);
    $envoi $mailer->send();
    etc... 
    Je vous remercie, et vous souhaite un agréable dimanche.

  • #2
    Aucune réponse. Je m’en sors en ajoutant un test supplémentaire. Mais intellectuellement, je reste sur ma fin.

    Commentaire


    • #3
      Hello.
      Envoyé par lendrevi Voir le message
      Aucune réponse. Je m’en sors en ajoutant un test supplémentaire. Mais intellectuellement, je reste sur ma fin.
      Quel test ?

      A priori ton code est correct.
      Rien ne permet de trouver pourquoi le mail est doublé.
      De mon côté j'utilise la classe mailer régulièrement, sans avoir ce problème.
      Je fais juste un peu plus de tests sur la validité des mails avant l'envoi en utilisant :
      Code PHP:
      if($mailer->addRecipient($email)->isError()){ 
      , mais le problème n'est pas là.

      Es-tu sur que ton code n'est pas appelé 2x ?

      Rajoute par exemple l'heure de passage avec
      Code PHP:
      $body .= '<br />génération' microtime(); 
      dans le corps du message par exemple, pour être sûr que l'heure de génération est bien la même.
      Si ce n'est pas le cas, c'est que tu appelles 2x ton code.


      Bon dev.
      Dernière édition par roland_d_alsace à 09/09/2019, 18h26
      A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
      Rejoignez le Joomla Users Groupe Alsace...
      roland_d_alsace va-t-il devenir roland_du_grand_est ?

      Commentaire


      • #4
        Bonjour Roland,

        Absolument, Je passe bien deux fois dans mon code. Comme je fais un Update en mysql, j’ai ajouté un test pour vérifier si la mise à jour est déjà effectuée, et dans ce cas je n’envoie pas le mail.
        je n’avais pas pensé à ta méthode.
        Mais pourquoi donc ce double passage, et pourquoi pas 3, 4 voire plus ?
        Je n’ai malheureusement pas le temps de m’appesantir sur ce phénomène. Dommage.

        Merci beaucoup Roland.

        Commentaire

        Annonce

        Réduire
        Aucune annonce pour le moment.

        Partenaire de l'association

        Réduire

        Hébergeur Web PlanetHoster
        Travaille ...
        X