Partage
  • Partager sur Facebook
  • Partager sur Twitter

PHP Envoi de Mail depuis formulaire

Apres moult essais pas de solution trouvée

Sujet résolu
    17 novembre 2017 à 12:11:42

    Bonjour les gens !

    Je viens vous voir les yeux embuée de larmes car voila un paquet d'heures que j'essaie de m'envoyer un mail depuis un formulaire de contact sur mon site web sans y parvenir.

    Dans l'idée, je ne voulais pas passer par "mailto" donc bien que n'ayant jamais été quelqu'un d'expérimenté en PHP je me suis dit que quand même je devais pouvoir me débrouiller pour réaliser un petit script php me permettant de m'envoyer un mail a moi-même depuis un formulaire html.

    J'ai donc regardé diverses sources sur "la toile" montrant comment récupérer la valeur d'un champ dans un formulaire html grâce a php.
    Comment envoyer un mail en php.
    Comment s'assurer que je puisse bien envoyer un mail depuis mon hébérgeur.

    Bref, malgré tout cela, rien n'y fait. j'ai testé plusieurs méthodes et aucunne ne fonctionne. pourtant je n'ai pas l'impression de faire n'importe quoi, je me contente de reprendre ce que je vois sur divers site internet/tuto/forum (plusieurs de ces réponses venant du forum d'openclassroom..)

    Peut-être ai-je fait une grossière erreur que je ne vois plus aveuglé par ma rage augmentant a chaque nouveau test raté ?

    Je solicite donc votre avis éclairé bien chers frères (/soeur c'est comme vous voulez).

    Mon formulaire dans ma page html :
          <section class="mail_me">
            <img src="RESSOURCES/cross1.png" class="close-cross" alt="close page" />
            <article>
              <!--<button action="<php //mail('adresse.mail@gmail.com', 'My Subject', "yo gros dep des bois"); ?>">send me</button>-->
              <div class="image"><div class="image_cache"></div></div>
              <div class="rubrique">
                <h2>Contactez moi !</h2>
                <!--<form action="mailto:addr.mail@gmail.com?subject=contact" name="envoi" method="POST" enctype="text/plain">-->
                <form action="mailFunc.php" name="envoi" method="post" enctype="text/plain">
                  <h4>Nom</h4>
                    <input name="nom" maxlength="50" />
                  <h4>Prénom</h4>
                    <input name="prenom" maxlength="50" />
                  <h4>Email</h4>
                    <input name="mail" id="mail" type="email" maxlength="50" />
                  <h4>Expliquez moi ce que vous souhaitez:</h4>
                    <textarea name="message" cols="120" rows="10"></textarea>
                  <input type="submit" value="Envoyer" name="Envoyer">
                </form>
              </div>
            </article>
          </section>


    le code php dans mon fichier mailFunc.php

    <?php
    if (empty($_POST['mail']))
    {
      echo $_POST['mail'];
      echo '<p>bonjour les connards</p>';
    }
    elseif (!empty($_POST['mail']))
      {
        echo 'yolo';
        $msg = "Je suis ";
        $msg.$_POST['nom']." ".$_POST['prenom']."\n";
        $msg."Mon mail est ".$_POST['mail']."\n\n";
        $msg.$_POST['mesage'];
        echo $msg;
        mail('monaddrmail@gmail.com', 'Contact', $msg);
      }
    ?>

    laissez moi ajouter que en appliquant cette méthode, après avoir cliquer sur le bouton envoyer et rempli mon formulaire je suis redirigé vers "www.monsite.lol/mailFunc.php" et que sur cette page  est écrit mon echo "bonjour les connards"

    J'ai aussi essayé de directement mettre mon script php dans le "action=" de mon formulaire mais dans ce cas, le mail n'etait pas envoyé et avant d'avoir cliquer sur le bouton submit le php avait l'air de s'executer et forcément mon champ "mail" etait vide a ce moment la.

    Pour finir, je peux bel et bien envoyez un mail car si j'appel simplement la fonction mail je reçois bien un email a mon adresse.

    Alors qu'est-ce que je fait mal ? Est-ce de ma faute ? Celle de mon hébérgeur (j'ai choisi un hébérgeur peu couteux et avec de mauvaises critiques. car il avait une offre peu couteuse et pour l'instant je ne souhaitais que pouvoir tester mon site en ligne. Et j'ai déja eu des soucis a propos de php avec mon hébérgeur alors..) ?

    Merci d'avance de bien vouloir m'aider :)

    • Partager sur Facebook
    • Partager sur Twitter
      17 novembre 2017 à 22:04:05

      Re-Bonjour,

      Merci de ta réponse, ça marche.
      A part que je suis redirigé toujours a l'adresse de mon script php.
      Mais si j'encapsule mon script dans une fonction ça marchera peut-être mieux ?

      En tout cas l'envoi de mail marche et je reçois tout bien.

      Je ne sais pas/plus pourquoi j'avais utilisé l'enctype.

      Si ça intéresse quelqu'un le "pourquoi ça ne marchait pas"

      https://stackoverflow.com/questions/7628249/method-post-enctype-text-plain-are-not-compatible

      Merci Philodick :)

      • Partager sur Facebook
      • Partager sur Twitter
        21 novembre 2017 à 19:10:07

        Ok, j'ai aussi trouvé pourquoi j'etais redirigé sur une page portant le nom de mon script php.

        Si quelqu'un arrive ici un jour, voici un indice: "redirection avec la fonction php header()".

        Toutes mes questions ont trouvée réponses, je marque le sujet en résolu :)
        • Partager sur Facebook
        • Partager sur Twitter

        PHP Envoi de Mail depuis formulaire

        × 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