Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fonction mail ne veux plus marcher

    23 avril 2017 à 13:00:59

    Bonjour, j'ai une fonction mail qui fonctionnait mais qui ne veux plus fonctionner avez vous une idée , je suis héberge sur free.

              $header = "MIME-Version: 1.0\r\n";
                   $header.= "From: \"AP-NDBN\"<apndbn@free.fr>"."\n";
                   $header.= "Content-Type: text/html; charset=\"utf-8\""."\n";
                   $header.= "Content-Transfer-Encoding: 8bit";
                   $sujet = "Confirmation d'inscription";
                   $message = '<html>
                          <head>
                            <title>Confirmation Inscription</title>
                            <meta charset="utf-8" />
                          </head>
                                <body>
                                  <font color="#303030";>
                                <div align="center">
                                <table width 600px">
                                <tr>
                                  <td>
                                  <br />
                                    <div align="center">Bonjour <b> '.$prenom.' '.$nom.' </b></div><br />
                                    Afin de vous connecter sur le site de l\'accompagnement personnalisé vous devrez utiliser le pseudo suivant : <br /> <div align="center"> <b> '.$pseudo.' </b></div><br />
                                    Merci de confirmer votre adresse mail en cliquant sur le lien suivant : <br />
                                    <a href="http://apndbn.free.fr/confirmation.php?pseudo='.urlencode($pseudo).'&cle='.$cle.'">CLiquer sur ce lien pour confirmer votre compte</a><br />
                                    A bientot sur le site de l\'Accompagnement personnalisé de Notre Dame de Bonne Nouvelle
                                    <br /><br /><br /><br />
                                   </td>
                                </tr>
                                <tr>
                                  <td align="center">
                                    <font size="2">
                                      Ceci est un email automatique, merci de ne pas y répondre.
                                    </font>
                                  </td>
                                </tr>
                                </table>
                                  </div>
                                  </font>
                              </body>
                            </html>';
                         mail($mail,$sujet,$message,$header);
    

    Merci

    • Partager sur Facebook
    • Partager sur Twitter
      26 avril 2017 à 19:37:43

      A votre place, j'irai plus vers l'utilisation du SMTP avec authentification avec PHPmailer.

      Même si le port 25 n'est pas bloqué, l'envoi est souvent perçu comme du SPAM et bloqué ou n'est pas authentifié.

      documentation avec exemple sur : https://github.com/PHPMailer/PHPMailer

      J'utilise ça avec un domaine qui n'a rien avoir avec mon accès SMTP.

      Pour tester, mets sur un serveur même local et remplace les variable utilisateur par tes infos de connexion.

      $message par "ton message" par exemple.

      <?php
      
       // si tu as créé un courriel spécialement pour ton site, voici un exemle:
       // courriel@tondomaine.com sur le port 25 du serveur de ton fournisseur web.
      
      	require('class.phpmailer.php'); Tu mets ce fichier que ce fichier si tu n'utilise pas SSL mais comme si tu utilisais comme avec mail().
      	$mail = new PHPMailer();
      	$mail->Host = mail.tondomaine.com; // qui est le serveur SMTP de l'hébergeur identifié à ton domaine
      	$mail->SMTPAuth   = true;
      	$mail->Port = 25; // Par défaut
      	$mail->Username = identifiant; // pour te connecter à ton serveur SMTP  
      	$mail->Password = password;  // passe de ton accès SMTP souvent le même que ton courriel  
      
      	$mail->CharSet = "utf-8";
      	$mail->WordWrap = 50;
      	$mail->setFrom($emailvisiteur, $sonnom); // c'est la que ton visiteur va mettre son nom et son courriel
      	$mail->addAddress("toncourriel@tondomaine.com", $sendtoname); // tu mets TON courriel là où tu veux le faire envoyer.
      	$mail->Subject = $subject;
      	$mail->isHTML(true);
      	$mail->Body = nl2br($message); // si le client prends le html
      	$mail->AltBody = $message; // si le client ne prends pas le html mais seulement le text
      
      	if(!$mail->send()) {
      		echo 'Erreur : ' . $mail->ErrorInfo;
      	} else {
      		echo 'Merci, votre message est envoyé !';
      		//echo '<meta http-equiv="refresh" content="7;URL=\'./index.php\'" />';
      	}
      
      ?>
      
      <?php
      echo date('Y-m-d H:i:s');
      
      ?>


      Dis-toi que tout le code remplace la partie

      mail(.....);

      PS, je ne tiens pas compte tes header() mais seulement tes variable comme email, nom, etc.

      Et ajoute les filtres PHP pour valider comme fiter_var()... qui marche très bien pour filter tes variable.

      -
      Edité par dan4 26 avril 2017 à 19:40:41

      • Partager sur Facebook
      • Partager sur Twitter
        28 avril 2017 à 20:34:09

        Vous connaissez c'est quoi les reglages pour les pages perso de free comme port et smtp ?
        • Partager sur Facebook
        • Partager sur Twitter
          29 avril 2017 à 1:51:12

          Une petite recherche m'a donné ce lieu:

          http://www.free.fr/assistance/2406.html

          En ayant un compte, ça sera facile.

          Pour tester, créer un fichier un fichier .php et tu l'exécute. Mais cela dans un répertoire pas à la vu du monde.

          L'authentification est plus que nécessaire vu que les hébergeurs protègent leur serveur.

          Fait signe si ça marche. A plus. Dan

          • Partager sur Facebook
          • Partager sur Twitter
            29 avril 2017 à 15:05:24

            Bonjour alors j'ai telecharger dans le meme dossier phpmailer et j'ai fait un fichier avec cela dedans mais je sais pas si j'ai tout bien rempli car la ca ne marche pas ( j'enleve l'id et le mdp)

            <?php
             
             // si tu as créé un courriel spécialement pour ton site, voici un exemle:
             // courriel@tondomaine.com sur le port 25 du serveur de ton fournisseur web.
             
                require('class.phpmailer.php'); //Tu mets ce fichier que ce fichier si tu n'utilise pas SSL mais comme si tu utilisais comme avec mail().
                $mail = new PHPMailer();
                $mail->Host = smtp.free.fr; // qui est le serveur SMTP de l'hébergeur identifié à ton domaine
                $mail->SMTPAuth   = true;
                $mail->Port = 465; // Par défaut
                $mail->Username = ****; // pour te connecter à ton serveur SMTP 
                $mail->Password = ****;  // passe de ton accès SMTP souvent le même que ton courriel 
                $emailvisiteur = "lycendbn49@gmail.com";
                $mail->CharSet = "utf-8";
                $mail->WordWrap = 50;
                $mail->setFrom($emailvisiteur, $sonnom); // c'est la que ton visiteur va mettre son nom et son courriel
                $mail->addAddress("leo49280@hotmail.fr", $sendtoname); // tu mets TON courriel là où tu veux le faire envoyer.
                $mail->Subject = $subject;
                $mail->isHTML(true);
                $mail->Body = nl2br($message); // si le client prends le html
                $mail->AltBody = $message; // si le client ne prends pas le html mais seulement le text
                           $sujet = "Confirmation d'inscription";
                           $message = '<html>
                                  <head>
                                    <title>Confirmation Inscription</title>
                                    <meta charset="utf-8" />
                                  </head>
                                        <body>
                                          <font color="#303030";>
                                        <div align="center">
                                        <table width 600px">
                                        <tr>
                                          <td>
                                          <br />
                                            <div align="center">Bonjour <b> </b></div><br />
                                            Afin de vous connecter sur le site de l\'accompagnement personnalisé vous devrez utiliser le pseudo suivant : <br /> <div align="center"> </b></div><br />
                                            Merci de confirmer votre adresse mail en cliquant sur le lien suivant : <br />
                                            <a href="http://apndbn.free.fr/confirmation.php?pseudo=">CLiquer sur ce lien pour confirmer votre compte</a><br />
                                            A bientot sur le site de l\'Accompagnement personnalisé de Notre Dame de Bonne Nouvelle
                                            <br /><br /><br /><br />
                                           </td>
                                        </tr>
                                        <tr>
                                          <td align="center">
                                            <font size="2">
                                              Ceci est un email automatique, merci de ne pas y répondre.
                                            </font>
                                          </td>
                                        </tr>
                                        </table>
                                          </div>
                                          </font>
                                      </body>
                                    </html>';
                if(!$mail->send()) {
                    echo 'Erreur : ' . $mail->ErrorInfo;
                } else {
                    echo 'Merci, votre message est envoyé !';
                    //echo '<meta http-equiv="refresh" content="7;URL=\'./index.php\'" />';
                }
             
            ?>
             
            <?php
            echo date('Y-m-d H:i:s');
             
            ?>



            • Partager sur Facebook
            • Partager sur Twitter
              2 mai 2017 à 14:06:32

              58 est la condition pour indiquer envoyé. donc, 22 à 54 irait là.

              Ta confirmation devrait vérifier la présence en base de données et par le fait même,
              indiquer qu'il est bien enregistrer. C'est ce que je ferais. Si non, je dirais simplement
              que le message a été envoyé.

              N'oublie pas de définir tes variables.

              16, c'est FROM

              17, c'est TO:

              Pour tester, il y a une commande debug comme $mail->debug = 2; ce qui t'indiquera à l'écran les détails du processus d'envoi. Je crois que 3 est plus détaillé. Si tu remplace toutes tes variables par les informations.

              à 58, tu pourrais mettre une redirection avec délais de manière à ne pas permettre un retour vers l'arrière simplement à cause de refresh. Pour le retour en arrière, les tokens, les captcha, sont intéressants. 

              -
              Edité par dan4 2 mai 2017 à 14:20:04

              • Partager sur Facebook
              • Partager sur Twitter
                9 mai 2017 à 3:09:09

                Bonjour Léo vous avez résolu votre problème?

                • Partager sur Facebook
                • Partager sur Twitter

                Fonction mail ne veux plus marcher

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown