Partage
  • Partager sur Facebook
  • Partager sur Twitter

Smtp Email Envoi

Sujet résolu
    12 juin 2019 à 20:53:07

    Bonsoir les gens, 

    j'ai un soucis avec l'envoi d'un mail gràace à PHPMailer, je suis hébergé sur Genious,

    si je met un 'echo' dans le 'if(!empty($_POST['email']) && ... ' , sans mettre mon script d'envoi de mail, le echo marche parfaitement, et aussi lorsque je met une adresse mail valide, ça affiche le message validé, sinon, il 'echo' un 'ressayer ....' 

    Mais lorsque je met le script d'envoi du mail dans le if , cela ne m'affiche rien du tout dans la page et le mail ne se reçoit pas.

    Voici mon code :

    <?php
                     
                     use PHPMailer\PHPMailer\PHPMailer;
                     use PHPMailer\PHPMailer\Exception;
                     require 'Exception.php';
                     require 'PHPMailer.php';
                     require 'SMTP.php';
    
                    if(!empty($_POST['email']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))
                    {   
                        //=====Configuration des paramètres d'expédition
                        //=====Utilisateur SMTP (Adresse email complète existante sur le serveur)
                        $username = "blabla@domaine.ex";
                        //=====Mot de passe de l'adresse
                        $password = "monmotdepasse";
                        //=====Nom du serveur sur lequel vos emails sont hébergés
                        $smtphost = "nom.duserveur.ex";
    
                    //=====Paramètres de contenu du mail
                        //=====Adresse de destination du message (vous-meme pour un formulaire de contact).
                        $to = $_POST['email'];
                        //=====Définition du sujet de l'email.
                        $subject = "Sujet Test";
    
                        /* =====Définition des variables à récupérer depuis votre formulaire
                        $email_auteur = $_POST['VARIABLE1'];
                        $nom_auteur = $_POST['VARIABLE2'];
                        $message = $_POST['VARIABLE3'];
                        */
    
                        //=====Déclaration des messages au format texte
                        $body = "Un nouveau message vous a été envoyé sur votre site";
                        //==========
    
                    //=====Fonction d'envoi du mail - Rien à configurer ici
    
                            $email = new PHPMailer;
                            $email->CharSet = 'UTF-8';
    
                            $email->isSMTP();
                            $email->Host = $smtphost;
                            $email->SMTPAuth = true;
                            $email->Username = $username;
                            $email->Password = $password;
                            $email->Port = 25;
                            $email->isHTML(true);
    
                            $email->From = $username;
                            $email->addAddress($to);
                            $email->Subject = $subject;
                            $email->Body    = $body;
                            $email->AltBody = $body;
    
                    //=====Envoi de l'e-mail.
                            if(!$email->send()) {
                                echo 'Le message ne peut être envoyé.';
                                echo 'Erreur: ' . $email->ErrorInfo;
                            } else {
                                echo "<strong style='color:#D6C100;margin-top:300px;'>Mail bien reçu. Veuillez vérifier votre mail pour confirmer ce dernier :<br>". $_POST['email'] . "</strong>";
                                echo 'Vous allez être redirigé vers la page d\'accueil du site...<br />';
                                header('Refresh: 7; URL=http//:mon/url/index');
                            }
                    //==========
                    }
                    else 
                    {
                        echo "<strong style='color:#D6C100;margin-top:300px;'>Mail non reçu, veuillez réessayer.</strong>";
                        echo "<form action='index.php'>";
                        echo "<br><button type='submit' style='cursor:pointer;border:none;padding:2%;'>Retour</button>";
                        echo "</form>";
                    }
                ?>



    Cordialement, merci de votre aide !

    -
    Edité par Wire Fire 12 juin 2019 à 20:54:29

    • Partager sur Facebook
    • Partager sur Twitter

    « Il y a plus de courage que de talent dans la plupart des réussites. » Félix Leclerc

      12 juin 2019 à 21:02:56

      Bonjour , je ne vois pas comment le mail est envoyé ... ?

      ps : j'ai jeté un coup d’œil à la doc , il y a une fonction send() (celle que tu utilise pour vérifier si elle a était faite :D

      -
      Edité par MrRise 12 juin 2019 à 21:09:39

      • Partager sur Facebook
      • Partager sur Twitter

      Pourquoi faire simple quand on peut faire compliqué ?

        12 juin 2019 à 21:26:45

        Bonsoir.

        Il ne faut jamais afficher du texte avant l'utilisation de la fonction header.

        Par contre, es-tu sur que la librairie est bien chargée dans la page ?

        Car tu utilises use, alors que tu ne sembles avoir aucun autoloader et que tu utilises require pour charger les fichiers de classe, comme-ci ils étaient situés au même niveau que ton script PHP.

        -
        Edité par Lartak 12 juin 2019 à 21:27:16

        • Partager sur Facebook
        • Partager sur Twitter
        Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.
          12 juin 2019 à 22:24:11

          Salut,

          en effet c'était exactement ça !

          Merci pour l'infos, je prend compte de changer le header par un button de retour, par contre pour rediriger vers le script qui met l'adresse dans la bdd je fais comment ?

          Puis mes mails tombent la première fois dans la boite de reception puis toute les autres adresse que j'envoi tombe dans le courrier indésirable.

          Et mon chemin de class n'était pas le bon.

          Merci à toi !

          -
          Edité par Wire Fire 12 juin 2019 à 23:17:29

          • Partager sur Facebook
          • Partager sur Twitter

          « Il y a plus de courage que de talent dans la plupart des réussites. » Félix Leclerc

            13 juin 2019 à 8:11:33

            Wire Fire a écrit:

            Merci pour l'infos, je prend compte de changer le header par un button de retour, par contre pour rediriger vers le script qui met l'adresse dans la bdd je fais comment ?

            -
            Edité par Wire Fire il y a environ 8 heures


            Tu peux utiliser une redirection en javascript tout simplement :

            <SCRIPT LANGUAGE="JavaScript">
            document.location.href="nouvellepage.html"
            </SCRIPT>



            • Partager sur Facebook
            • Partager sur Twitter
              13 juin 2019 à 13:30:48

              Ah d'accord merci,

              mais par contre j'ai toujours le problème du courrier indésirable, c'est bizarre parce que le premier test est parti dans la boîte de réception, puis tout les test suivants dans le courrier indésirable, même en changeant d'adresse mail de destination dans mon <form>.

              Pour le port suis-je obliger d'utiliser le port 25 ? Parce que ce n'est pas celui défini sur mon hébergeur ?  

              Cordialement.

              • Partager sur Facebook
              • Partager sur Twitter

              « Il y a plus de courage que de talent dans la plupart des réussites. » Félix Leclerc

              Smtp Email Envoi

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              • Editeur
              • Markdown