Envoyer un mail avec un formulaire

Debutant en webmastering Messages postés 444 Statut Membre -  
Debutant en webmastering Messages postés 444 Statut Membre -
Bonjour,

ne connaissant pas cette capacité du php qui est d'envoyer un mail via un formulaire, j'ai suivi un tutoriel :

http://creer-un-site.fr

malheureusement, mon envoi ne se réalise pas :(

si vous aviez 5 petites minutes pour me dire ce qui cloche, je vous en serais vraiment reconnaissant

voici mon Formulaire :

<form action="NousContacter.php" method="POST" >
<tr><td>Nom :</td></tr>
<tr><td><input type="text" name="nom_contact"></td></tr>
<tr></tr>
<tr><td>Prénom :</td></tr>
<tr><td><input type="text" name="prenom_contact"></td></tr>
<tr></tr>
<tr><td>Mail :</td></tr>
<tr><td><input type="text" name="mail_contact"></td></tr>
<tr><td>Tel : </td></tr>
<tr><td><input type="text" name="tel_contact"></td></tr>
<tr><td>Est-ce pour un devis ?<input type="radio" name="devis_contact">Oui <input type="radio" name="devis_contact">Non </td></tr>
<tr></tr>
<tr><td>Demande de renseignement</td></tr>
<tr><td><textarea name="message_contact" rows="8" cols="50"></textarea></td></tr>
<tr></tr>
<tr><td><input type="submit" name="Envoyer" value="Envoyer"></td>
<td><input type="reset" name="Effacer" value="Effacer"></td></tr>
<tr></tr>
</form>

et mon code PHP :

<?php
if(isset($_POST["Envoyer"]))
{ $nom_contact = stripslashes($_POST["nom_contact"]);
$prenom_contact = stripslashes($_POST["prenom_contact"]);
$mail_contact = stripslashes($_POST["mail_contact"]);
$tel_contact = stripslashes($_POST["tel_contact"]);
$devis_contact = stripslashes($_POST["devis_contact"]);
$message_contact = stripslashes($_POST["message_contact"]);
$mon_e_mail = xxx@xxx.fr //e_mail de test
$mon_url = "http://url_de_mon_site.fr"; //non défini car pas encore en ligne

if(empty($nom_contact)){
echo 'Vous avez oublié votre nom. <br/>';
}

elseif(empty($prenom_contact)){
echo 'Vous avez oublié votre prénom.<br/>';
}

elseif(empty($mail_contact)){
echo 'Vous avez oublié de préciser votre adresse mail.<br/>';
}

elseif(empty($tel_contact)){
echo 'Veuillez noter votre numéro de téléphone.<br/>';
if(!preg_match(''[0-9]{10}'',$tel_contact));echo "Ce numéro de téléphone n'est pas valide.<br/>";}


elseif(empty($devis_contact)){
echo 'Veuillez préciser la raison de votre contact.<br/>';
}

else if(empty($message_contact)){
echo 'Veuillez écrire votre message.<br/>';
}
else{
// Envoie du mail
$entete = "From: " . $mail_contact . " <" . $mon_e_mail . ">\n";
$entete= "MIME-Version: 1.0";
<" . $nom_contact . ">/n";"
<" . $prenom_contact . ">/n";"
<" . $tel_contact . ">/n";
$message = . $message_contact .

if (mail($mail_contact,$mon_e_mail,$nom_contact,$prenom_contact,$tel_contact,$message_contact)){
echo "Votre message a été envoyé.<br />\n";
echo "<a href=\"" . $mon_url . "\">Retour</a>\n";
}
else {
echo "Un problème s'est produit lors de l'envoi du message.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez</a>\n";
}
//on ferme le else
}

//on ferme if(isset($_POST["Envoyer"]))
}
?>

9 réponses

tryan44 Messages postés 1381 Statut Membre 220
 
Bonjour,

Le code fonctionne très bien à l'origine. Dans votre code, vous avez oublié des guillemets
$mon_e_mail = xxx@xxx.fr

ou alors vous en ajoutez la ou il ne faut pas
<" . $nom_contact . ">/n";" 

ou vous oubliez des points virgules
$message = . $message_contact . 

vous oubliez de concaténer la variable $entete ...
Une question stupide engendre une réponse stupide!
Une question mal formulé engendre une réponse aléatoire!
0
Debutant en webmastering Messages postés 444 Statut Membre
 
effectivement, les guillements ont été oubliées lorsque j'ai réécrit les xxx@xxx.fr pour ne pas divulguer mon adresse et pour ce qui est du reste voici les modifications :

// Envoie du mail
		$entete = "From: " . $mail_contact .  < . $mon_e_mail . >\n;
		. $entete . = "MIME-Version: 1.0";
		< . $nom_contact . 	>/n;
		< . $prenom_contact . 	>/n;
		< . $tel_contact .		>/n;
		$message = . $message_contact .;

Cordialement, Debutant en webmastering
0
tryan44 Messages postés 1381 Statut Membre 220
 
Dans l'entête, c'est l'mail du correspondant par le votre.
$entete = "From: " . $mon_pseudo . " <" . $son_email . ">\n"; 
$entete .= "MIME-Version: 1.0"; 

Ensuite, $message est faux.
$message =  $message_contact ;

Dailleurs cette variable ne sert à rien puisque vous pouvez l'envoyer directement dans la fonction mail() en utilisant directement la variable $message_contact.

Pour finir, au lieu de tenter d'insérer certaines données dans l'entête, insérer les plutôt dans le message :

$message .=  " ".$message_contact."\n" ; 
$message .= "Nom : ".$nom_contact."\n"; 
$message .= "Nom : ".$prenom_contact."\n"; 
//etc


Puis dans l'envoie du mail
if (@mail($mon_email,$objet,$message,$entete)) 

Une question stupide engendre une réponse stupide!
Une question mal formulé engendre une réponse aléatoire!
0
Debutant en webmastering Messages postés 444 Statut Membre
 
Ah, c'est vrai que je n'ais pas exposé mes intentions quant à ce formulaire.
En fait j'ai créé un petit site pour une entreprise et ce formulaire aura pour but de les contacter donc

$entete = "From: " . $mail_contact . me semble justifié car la personne donne son mail pour que l'on puisse la recontacter mais le problème (et c'est justement ce que je n'ais pas compris dans le tutoriel c'est à quelle adresse on envoie le tout; je pensais que $entete = "From: " . $mail_contact . < . $mon_e_mail . >\n; renseignait 1èrement le mail de la personne qui écrivait ($mail_contact) et ensuite le destinataire (. $son_email .)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tryan44 Messages postés 1381 Statut Membre 220
 
$entete = "From: " . $mon_pseudo . " <" . $son_email . ">\n";

$mon_pseudo = pseudo de l'envoyeur.
$son_email = email de la personne qui envoie.
Dans l'envoie :
if (@mail($mon_email,$lechamp1,$lechamp2,$entete))

Il faut remplacer $mon_email par $son_email.
Le code ci-dessus correspond à :
if (@mail(mail du destinataire,objet du message,message, entête))


Une question stupide engendre une réponse stupide!
Une question mal formulé engendre une réponse aléatoire!
0
Debutant en webmastering Messages postés 444 Statut Membre
 
non justement, c'est là que je n'ais pas dû être assez clair, en 1er lieu, j'ai
$mon_e_mail (qui sera celle de l'entreprise) et c'est justement à cette adresse que je souhaite envoyer (le formulaire sert à envoyer la demande du client à l'entreprise qui elle renverra les informations par simple boîte mail)

désolé de ne pas avoir été clair dès le début :( et j'espère que ça l'est plus maintenant
0
tryan44 Messages postés 1381 Statut Membre 220
 
Donc $mon_e_mail vient en premier dans la fonction mail
if (@mail($mon_e_mail,objet du message,message, entête))
0
Debutant en webmastering Messages postés 444 Statut Membre
 
tu as raison, je crois que je vais oublier cette histoire d'entête et tout mettre directement dans mon message

et encore merci pour ton aide
0
Debutant en webmastering Messages postés 444 Statut Membre
 
juste une question, pourquoi lorsque j'appuie sur Envoyer cela m'affiche mon code php ??

Cordialement, Debutant en webmastering
0
Debutant en webmastering Messages postés 444 Statut Membre
 
hum wamp non actif ...
0