Envoie d'un mail automatique après soumission formulaire en php
max_140
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à tous,
J'ai un petit problème. Dans mon site, je voudrais recevoir un email reprenant le formulaire que l'utilisateur soumet.
Mon code a quelques soucis : Je reçois bien l'email, mais par contre, je n'ai pas le sujet, ni le corps du message ou encore l'expéditeur qui s'affiche dans le mail que je reçois.
J'ai essayé de deux façons différentes, sans succès :
Voici mes codes :
Formalaire (HTML) :
J'ai essayé ceci en php :
1)
et ceci :
Quelques explications :
- J'aimerai recevoir un mail dont le sujet est le sujet de la demande choisi dans le formulaire (entre les sélect du code html)
- J'aimerai recevoir l'adresse de l'expéditeur dans la case expéditeur de mon mail (celle qu'il fournit dans le formulaire)
- J'aimerai recevoir dans le corps du mail, la demande entrée par l'utilisateur.
Avec les codes que j'ai essayé, j'obtiens ceci (voir photo)
Est-ce que l'un de vous comprends ce qui ne fonctionne pas ou pourrais m'aiguiller afin que je trouve une solution ?
Merci d'avance,
Bonne journée :)
J'ai un petit problème. Dans mon site, je voudrais recevoir un email reprenant le formulaire que l'utilisateur soumet.
Mon code a quelques soucis : Je reçois bien l'email, mais par contre, je n'ai pas le sujet, ni le corps du message ou encore l'expéditeur qui s'affiche dans le mail que je reçois.
J'ai essayé de deux façons différentes, sans succès :
Voici mes codes :
Formalaire (HTML) :
<h2 id="devis"> Formulaire de contact et devis </h2> <form method="get" action="merci.php"> <div> <label for="sujet"> Sujet : </label> <select type ="select" name ="_mailsubj" id="sujet"/> <optgroup label="Devis"> <option value ="Devis - Spa Aqualife 6" selected="selected"> Devis - Spa Aqualife 6</option> <option value ="Devis - Spa Origami">Devis - Spa Origami</option> <option value ="Devis - Spa Sunset">Devis - Spa Sunset</option> <option value ="Devis - Spa Inground">Devis - Spa Inground</option> </optgroup> <optgroup label="Informations"> <option value="Informations - Spa Aqualife 6">Informations - Spa Aqualife 6</option> <option value="Informations - Spa Origami">Informations - Spa Origami</option> <option value="Informations - Spa Sunset">Informations - Spa Sunset</option> <option value="Informations - Spa Inground">Informations - Spa Inground</option> </optgroup> <option value="Devenir Revendeur">Devenir Revendeur</option> <option value="Autres demandes">Autres demandes</option> </select> </br> Titre : <table> <tr> <td> <input type="radio" name="titre" value="Monsieur" id="Monsieur" checked="checked" /> <label for="Monsieur"> Monsieur </label> </td> <td> <input type="radio" name="titre" value="Madame" id="Madame" /> <label for="Madame"> Madame </label> </td> <td> <input type="radio" name="titre" value="Mademoiselle" id="Mademoiselle" /> <label for="Mademoiselle"> Mademoiselle </label> </td> </tr> </table> </div> <div id="container"> <div> <label for="Nom"> Nom :</label> </br> <input type ="text" name ="Nom" id ="Nom" placeholder="Ex : Dupont" required="required" /> </div> <div> <label for="Prenom"> Prenom : </label> </br> <input type ="text" name ="Prenom" id="Prenom" placeholder="Ex: Jean" required="required" /> </div> <div> <label for="Mail"> Adresse electronique : </label> </br> <input type ="email" name ="Mail" id="Mail" placeholder=" Ex: Jean.Dupont@hotmail.com" required="required" /> </div> <div> <label for="Tel"> Numéro de Téléphone : </label> </br> <input type ="tel" name ="Tel" id="Tel" placeholder="Fixe ou mobile" required="required" /> </div> </div> </br> <div> <label for="mmessage"> Message : </label> </br> <textarea type ="text" name ="mmessage" id="mmessage" placeholder="Votre message ..." required="required"></textarea> </div> </br> <div id="container2"> <input type="submit" value="Envoyer" /> <input type="reset" value="Recommencer" =""> </div> </form>
J'ai essayé ceci en php :
1)
<?php $destinataire = 'Maxime.Willemet@student.ulg.ac.be'; // Pour les champs $expediteur / $copie / $destinataire, séparer par une virgule s'il y a plusieurs adresses $expediteur = $_GET["Mail"]; $copie = $_GET["Mail"]; $copie_cachee = $_GET["Mail"]; $objet = $_GET["sujet"]; // Objet du message $headers = 'MIME-Version: 1.0' . "\n"; // Version MIME $headers .= 'Reply-To: '.$expediteur."\n"; // Mail de reponse $headers .= 'From: "Nom_de_expediteur"<'.$expediteur.'>'."\n"; $headers .= 'Delivered-to: '.$destinataire."\n"; // Destinataire $headers .= 'Cc: '.$copie."\n"; // Copie Cc $headers .= 'Bcc: '.$copie_cachee."\n\n"; // Copie cachée Bcc $message = $_GET["mmessage"]; if (mail($destinataire, $objet, $message, $headers)) // Envoi du message { echo 'Votre message a bien été envoyé '; } else // Non envoyé { echo "Votre message n'a pas pu être envoyé"; } ?>
et ceci :
<?php $destinataire = 'Maxime.Willemet@student.ulg.ac.be'; if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $destinataire)){ $passage_ligne = "\r\n"; } else{ $passage_ligne = "\n"; } $boundary = "-----=".md5(rand()); // Pour les champs $expediteur / $copie / $destinataire, séparer par une virgule s'il y a plusieurs adresses $expediteur = $_GET["Mail"]; $objet = $_GET["sujet"]; // Objet du message $header = "From: <".$expediteur.">".$passage_ligne; $header.= "Reply-to: <".$expediteur.">".$passage_ligne; $header.= "MIME-Version: 1.0".$passage_ligne; $header.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne; $message = $passage_ligne."--".$boundary.$passage_ligne; $message .= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne; $message .= "Content-Transfer-Encoding: 8bit".$passage_ligne; $message .= $passage_ligne.$_GET["mmessage"].$passage_ligne; $message.= $passage_ligne."--".$boundary."--".$passage_ligne; if (mail($destinataire, $objet, $message, $headers)) // Envoi du message { echo 'Votre message a bien été envoyé '; } else // Non envoyé { echo "Votre message n'a pas pu être envoyé"; } ?>
Quelques explications :
- J'aimerai recevoir un mail dont le sujet est le sujet de la demande choisi dans le formulaire (entre les sélect du code html)
- J'aimerai recevoir l'adresse de l'expéditeur dans la case expéditeur de mon mail (celle qu'il fournit dans le formulaire)
- J'aimerai recevoir dans le corps du mail, la demande entrée par l'utilisateur.
Avec les codes que j'ai essayé, j'obtiens ceci (voir photo)

Est-ce que l'un de vous comprends ce qui ne fonctionne pas ou pourrais m'aiguiller afin que je trouve une solution ?
Merci d'avance,
Bonne journée :)
A voir également:
- Envoie d'un mail automatique après soumission formulaire en php
- Whatsapp formulaire opposition - Guide
- Réponse automatique thunderbird - Guide
- Formulaire de réclamation facebook - Guide
- Publipostage mail - Accueil - Word
- Gmail envoyer un mail - Guide
1 réponse
Bonjour
Commence par utiliser POST au lieu de GET
Puis applique ceci:
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
.
Commence par utiliser POST au lieu de GET
Puis applique ceci:
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
.
Je suis obliger d'utiliser une méthode GET, c'est une de mes consignes
Passe au deuxième point et reviens nous voir avec le code modifié et les éventuels messages d'erreur