Envoi de mail impossible (via PHP, Sendmail ou SMTP)

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

  • Envoi de mail impossible (via PHP, Sendmail ou SMTP)

    Bonjour,

    Je suis en train de tester Joomla! 3.1.5 Stable. Template Yootheme yoo_nano3 1.0.6.

    L'envoi d'e-mails depuis un article (envoi à un ami) ne fonctionne pas. Ni via l'option mail php, ni via sendmail, et apparemment pas d'avantage via SMTP.

    La fonction mail php fonctionne sans problème lorsque je l'utilise via (par exemple) un fichier test.php que je place à la racine de mon site joomla et que j'atteins manuellement via mon navigateur web. Je reçois bien mon mail de test. Pareil pour sendmail qui fonctionne également sans problème en ligne de commande. Mais aucun des deux ne semblent fonctionner depuis le frontend Joomla.

    J'ai cru comprendre que quelques personnes avaient ce type de problème depuis la 2.5 ? Serait-il possible de m'indiquer s'il existe un moyen de débugger la chose ? J'ai analysé mon fichier log /var/log/mail.log, mais le log ne se complète que quand j'envoie un mail manuellement et pas lorsqu'une tentative d'envoie est faite depuis Joomla. Du coup, il est difficile pour moi de tracer le problème.

    Mes recherches Google ne donnent rien, la plupart des problèmes étant relatifs à une mauvaise config de php ou sendmail (ce qui ne semble pas être mon cas).

    Merci pour les éventuels conseils !

  • #2
    Re : Envoi de mail impossible (via PHP, Sendmail ou SMTP)

    Bonjour,

    Et bienvenue sur le forum.

    Dans la configuration de Joomla!, passer l'affichage des erreurs en mode Développeur, ça devrait permettre de tracer la cause du problème.
    Pas de demande de support par MP.
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

    Commentaire


    • #3
      Re : Envoi de mail impossible (via PHP, Sendmail ou SMTP)

      Ah oui ! Voici les résultats du debug:

      Code:
      L'e-mail ne peut pas être envoyé.
      Call stack
      #	Function	Location
      1	JSite->dispatch()	JROOT/index.php:52
      2	JComponentHelper::renderComponent()	JROOT/includes/application.php:220
      3	JComponentHelper::executeComponent()	JROOT/libraries/legacy/component/helper.php:335
      4	require_once()	JROOT/libraries/legacy/component/helper.php:355
      5	JControllerLegacy->execute()	JROOT/components/com_mailto/mailto.php:17
      6	MailtoController->send()	JROOT/libraries/legacy/controller/legacy.php:722
      7	JError::raiseNotice()	JROOT/components/com_mailto/controller.php:50
      8	JError::raise()	JROOT/libraries/legacy/error/error.php:289
      Si je comprends bien, les deux dernières lignes correspondent à la génération du message d'erreur, provoqué par ce qui est rapporté dans les lignes précédentes ? (legacy.php ligne 722 ?)

      Commentaire


      • #4
        Re : Envoi de mail impossible (via PHP, Sendmail ou SMTP)

        L'erreur est levée par la méthode send du contrôleur email. Il ne s'agit pas d'une erreur bloquante, mais d'une notification pour un cas particulier:
        Code PHP:
            public function send()
            {
                
        // Check for request forgeries
                
        JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));

                
        $app     JFactory::getApplication();
                
        $session JFactory::getSession();

                
        $timeout $session->get('com_mailto.formtime'0);
                if (
        $timeout == || time() - $timeout 20)
                {
                                
        // C'est ce timeout qui est le déclencheur en suivant le debug.
                    
        JError::raiseNotice(500JText::_('COM_MAILTO_EMAIL_NOT_SENT'));
                    return 
        $this->mailto();
                }

                
        $SiteName $app->getCfg('sitename');

                
        $link     MailtoHelper::validateHash($this->input->get('link''''post'));

                
        // Verify that this is a local link
                
        if (!$link || !JUri::isInternal($link))
                {
                    
        //Non-local url...
                    
        JError::raiseNotice(500JText::_('COM_MAILTO_EMAIL_NOT_SENT'));
                    return 
        $this->mailto();
                } 
        Le début de la méthode montre le problème. J'ai mis un commentaire sur l'emplacement où le warning est levé.
        Dans ce cas, le warning est levé parce que la requête SMTP est en timeout .

        Sur la raison du timeout, là...

        Quel est le type d'installation ? Local / distant ?
        En mutualisé ou sur serveur dédié ? Sous quel OS ?
        Pas de demande de support par MP.
        S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

        Commentaire


        • #5
          Re : Envoi de mail impossible (via PHP, Sendmail ou SMTP)

          Merci, j'y vois plus clair !

          Ce Joomla tourne sur le VPS le plus cheap d'OVH (Classic) sous Debian 6.

          Ce qui me surprend, c'est que les mails passent en un clin d'oeil via la ligne de commande ou la fonction mail de php lorsqu'elle est utilisée dans un script quelconque hors de Joomla.

          Existe-t-il un moyen de logger d'avantage de détails pour vérifier qu'il s'agit bien d'un timeout ?

          Commentaire


          • #6
            Re : Envoi de mail impossible (via PHP, Sendmail ou SMTP)

            Bonjour rogermanvu,

            L'envoi d'e-mails depuis un article (envoi à un ami) ne fonctionne pas
            .Je n'ai pas des réponses mais plutôt des questions :

            Quelle est la méthode utilisée pour envoyer un e-mail à partir d'un article en front-end ?

            Est-ce le problème se reproduit lors d'autres actions d'envoi d'e-mails dans Joomla! par exemple :
            • en front-end lors de l'envoi d'un e-mail à un contact ?
            • en front-end lors de la notification de l'enregistrement d'un nouvel utilisateur ?
            • en back-end en utilisant l'envoi d'e-mails en nombre ?
            • en back-end l'envoi de la notification lors de la création d'un nouvel utilisateur ?


            Amicalement,
            Rajoz

            Commentaire


            • #7
              Re : Envoi de mail impossible (via PHP, Sendmail ou SMTP)

              L'erreur se produit lors de l'envoi de mail via le formulaire affiché en cliquant sur le bouton "E-mail" se trouvant en-dessous des articles.

              J'avais effectivement omis de tester les autres méthodes d'envoi ! Voici le résultat (très parlant !)

              - Depuis le back-end, les utilisateurs créés reçoivent bien la notification de création de leurs comptes !
              - Depuis le back-end, les mails envoyés via l'envoi d'E-mails en nombre fonctionnent !
              - Depuis le front-end, l'envoi d'un E-mail via le formulaire de contact standard de Joomla fonctionne.
              - Depuis le front-end, l'enregistrement d'un utilisateur fonctionne (message type "votre compte a été créé avec succès et un lien d'activation a été envoyé..."). Et la notification par mail est bien reçue !

              Bref, le problème ne se pose qu'en utilisant la fonction "E-mail" d'un article.

              J'ai testé en redéfinissant le template de base par défaut, le comportement est le même. Et le message est même plus complet:

              "Annonce
              Ne peut instancier la fonction mail.
              L'e-mail ne peut pas être envoyé."

              Zarbi-bizarre... ! ;-)
              Dernière édition par rogermanvu à 23/08/2013, 20h20 Raison: précisions / orthographe

              Commentaire


              • #8
                Re : Envoi de mail impossible (via PHP, Sendmail ou SMTP)

                Up.

                Ma situation ne s'est pas améliorée. Le problème est toujours présent. L'envoi de mail via un article ne m'étant pas utile, je vais me contenter de désactiver l'option.

                Néanmoins, l'envoi d'e-mail fonctionnant de partout (cf-ci-dessus) sauf depuis un article, peut-on conclure qu'il s'agit d'un bug de cette release Joomla ?

                Commentaire


                • #9
                  Re : Envoi de mail impossible (via PHP, Sendmail ou SMTP)

                  Bonjour ; j'ai exactement le même souci sur des versions 2.5.x et 3;x. Une chose pire encore ; sur un site (template JSN Air) passage par MAJ automatique de la 3.1.1 à la 3.2.3 Stable ; depuis ne marche plus...Auriez-vous réglé ce souci ?

                  Commentaire

                  Annonce

                  Réduire
                  Aucune annonce pour le moment.

                  Partenaire de l'association

                  Réduire

                  Hébergeur Web PlanetHoster
                  Travaille ...
                  X