Envoi de formulaire par mail html

Résolu/Fermé
guedo Messages postés 77 Date d'inscription mercredi 26 novembre 2014 Statut Membre Dernière intervention 10 avril 2019 - 26 nov. 2014 à 11:07
guedo Messages postés 77 Date d'inscription mercredi 26 novembre 2014 Statut Membre Dernière intervention 10 avril 2019 - 27 nov. 2014 à 15:53
Bonjour a tous je viens de m'inscrire,
j'aurais besoin d'aide par rapport a la programmation de mon site.
j'ai déjà rédiger le corps de mes formulaire avec a la fin le bouton envoyer.
j'aimerais maintenant faire en sorte que lorsque le formulaire est validez par l'utilisateur, je reçois le formulaire par mail.
Merci de bien vouloir m'aider.
A voir également:

6 réponses

jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707
27 nov. 2014 à 15:31
<?php
//---------------------------------------------------------
// On "importe" la class PHPMailer.
//---------------------------------------------------------
	require_once("./PHPMailer/class.phpmailer.php");
	require_once("./PHPMailer/class.smtp.php");
//---------------------------------------------------------
// Definition des constantes :
//---------------------------------------------------------
	define('GUSER', 'tonEmail@gmail.com'); // GMail username
	define('GPWD', 'lePassword'); // GMail password

//---------------------------------------------------------
//fonction d'envoie de mail
//---------------------------------------------------------
function sendMail($to, $from, $from_name, $subject, $body) { 
	global $error;
	$mail = new PHPMailer();  // create a new object
	$mail->IsSMTP(); // enable SMTP
	$mail->SMTPDebug = 0;  // debugging: 1 = errors and messages, 2 = messages only
	$mail->SMTPAuth = true;  // authentication enabled
	$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
	$mail->Host = 'smtp.gmail.com';
	$mail->Port = 465; 
	$mail->Username = GUSER;  
	$mail->Password = GPWD;           
	$mail->SetFrom($from, $from_name);
	$mail->Subject = $subject;
	$mail->Body = $body;
	$mail->AddAddress($to);
	if(!$mail->Send()) {
		$error = 'Mail error: '.$mail->ErrorInfo; 
		return false;
	} else {
		$error = 'Message sent!';
		return true;
	}
}

//---------------------------------------------------------
// ON REGARDE SI LE FORMULAIRE A ETE VALIDE
//---------------------------------------------------------
if(isset($_POST['email'])){
	// on récupère le contenu des variables
	$nom = isset($_POST['nom'])?$_POST['nom']:'';	
	$phone = isset($_POST['phone'])?$_POST['phone']:'';
	$email = isset($_POST['email'])?$_POST['email']:'';
	$message = isset($_POST['message'])?$_POST['message']:'';
	
	$subject = "Test d'envoie de mail";
	
	$textMsg = "";
    $textMsg .= "Bonjour M./Mme ".$nom;
	$textMsg .= "tel :".$phone;
	$textMsg .= "Message :".$message;
	
	$to = $email;
	$from = "moi@mondomaine.fr";
	$from_name = "moi moi moi";
	
	if(!sendMail($to, $from, $from_name, $subject, 	$textMsg)){
	  echo "<pre>err: ".$error."</pre>";
	}else{
	  echo " <pre> MESSAGE ENVOYE ... </pre>";
	}
}else{
 echo "<pre> Vous n'avez pas renseigné votre email..</pre>";
}


?>

<html>
<head><title>TEST FORMULAIRE</title>
</head>
<body>

<div class="row">
            <div class="col-md-8">
                <h3>Envoyez nous un message</h3>
                <form name="sentMessage" id="contactForm"  METHOD="post" action="">
                    <div class="control-group form-group">
                        <div class="controls">
                            <label>Nom Prénom:</label>
                            <input type="text" class="form-control" name="name" required data-validation-required-message="Please enter your name.">
                            <p class="help-block"></p>
                        </div>
                    </div>
                    <div class="control-group form-group">
                        <div class="controls">
                            <label>Telephone:</label>
                            <input type="tel" class="form-control" name="phone" required data-validation-required-message="Please enter your phone number.">
                        </div>
                    </div>
                    <div class="control-group form-group">
                        <div class="controls">
                            <label>Email:</label>
                            <input type="email" class="form-control" name="email" required data-validation-required-message="Please enter your email address.">
                        </div>
                    </div>
                    <div class="control-group form-group">
                        <div class="controls">
                            <label>Message:</label>
                            <textarea rows="10" cols="100" class="form-control" name="message" required data-validation-required-message="Please enter your message" maxlength="999" style="resize:none"></textarea>
                        </div>
                    </div>
                    <div id="success"></div>
                    <!-- For success/fail messages -->
                    <input type="submit" class="btn btn-primary" value='Envoyer'>
                </form>
            </div>

        </div>

</body>
</html>

5
guedo Messages postés 77 Date d'inscription mercredi 26 novembre 2014 Statut Membre Dernière intervention 10 avril 2019 1
27 nov. 2014 à 15:53
merci mille fois
tu peut pas savoir comment tu me sauve (je suis en contrat de professionnalisation et mon tuteur ne m'aide pas du tout)
0
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707
27 nov. 2014 à 14:23
Voici déjà un premier exemple :

<?php
//---------------------------------------------------------
// On "importe" la class PHPMailer.
//---------------------------------------------------------
	require_once("./PHPMailer/class.phpmailer.php");
	require_once("./PHPMailer/class.smtp.php");
//---------------------------------------------------------
// Definition des constantes :
//---------------------------------------------------------
	define('GUSER', 'tonadresseEmail@gmail.com'); // GMail username
	define('GPWD', 'sonMotdePass'); // GMail password

//---------------------------------------------------------
//fonction d'envoie de mail
//---------------------------------------------------------
function sendMail($to, $from, $from_name, $subject, $body) { 
	global $error;
	$mail = new PHPMailer();  // create a new object
	$mail->IsSMTP(); // enable SMTP
	$mail->SMTPDebug = 0;  // debugging: 1 = errors and messages, 2 = messages only
	$mail->SMTPAuth = true;  // authentication enabled
	$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
	$mail->Host = 'smtp.gmail.com';
	$mail->Port = 465; 
	$mail->Username = GUSER;  
	$mail->Password = GPWD;           
	$mail->SetFrom($from, $from_name);
	$mail->Subject = $subject;
	$mail->Body = $body;
	$mail->AddAddress($to);
	if(!$mail->Send()) {
		$error = 'Mail error: '.$mail->ErrorInfo; 
		return false;
	} else {
		$error = 'Message sent!';
		return true;
	}
}

//---------------------------------------------------------
// ON REGARDE SI LE FORMULAIRE A ETE VALIDE
//---------------------------------------------------------
if(isset($_POST['valider'])){
	// on récupère le contenu des variables
	$nom = isset($_POST['nom'])?$_POST['nom']:'';	
	$prenom = isset($_POST['prenom'])?$_POST['prenom']:'';
	$age = isset($_POST['age'])?$_POST['age']:'';
	$email = isset($_POST['email'])?$_POST['email']:'';
	
	$subject = "Test d'envoie de mail";
	
	$textMsg = "";
    $textMsg .= "Bonjour M./Mme ".$nom." ".$prenom;
	$textMsg .= "<br>Vous avez indiqué avoir : ".$age." ans.";
	$textMsg .= "<br>Merci.";
	
	$to = $email;
	$from = "moi@mondomaine.fr";
	$from_name = "moi moi moi";
	
	if(!sendMail($to, $from, $from_name, $subject, 	$textMsg)){
	  echo "<pre>err: ".$error."</pre>";
	}else{
	  echo " <pre> MESSAGE ENVOYE ... </pre>";
	}
}


?>

<html>
<head><title>TEST FORMULAIRE</title>
</head>
<body>

<!-- FORMULAIRE HTML -->
<form name="monForm" method="post" action="">
	<label for="inp_nom"> NOM </label>
	<input type="text" name="nom" id="inp_nom" value="">
	<br>
	<label for="inp_prenom"> PRENOM </label>
	<input type="text" name="prenom" id="inp_prenom" value="">
	<br>
	<label for="inp_age"> AGE </label>
	<input type="text" name="age" id="inp_age" size="3" value="">
	<br>
	<label for="inp_mail"> Email </label>
	<input type="text" name="email" id="inp_mail" value="">
	<br>
	<input type="submit" name="valider" value="Go">
</form>

</body>
</html>


1 - "installation" de phpmailer
Pour que ça fonctionne.. tu télécharge phpmailer..
et tu le dézipe dans le même répertoire que ta page...
..ou tu peux le mettre ailleurs.. mais dans ce cas il faut modifier le chemin dans les lignes :
	require_once("./PHPMailer/class.phpmailer.php");
	require_once("./PHPMailer/class.smtp.php");



2 - Paramétrage
Ensuite.. tu modifies les deux variables :
	define('GUSER', 'tonadresseEmail@gmail.com'); // GMail username
	define('GPWD', 'sonMotdePass'); // GMail password


3 - Tu créés ton formulaire HTML

4 - Tu récupères les variables de ton formulaire en PHP
par exemple :
$nom = isset($_POST['nom'])?$_POST['nom']:'';	

comme tu peux le voir.. j'ai utilisé deux choses importantes
A - ISSET ... permet de s'assurer que la variable existe
B - L'écriture "ternaire" ( condition ? valeur si vrai : valeur si faux) ... c'est une autre façon de faire des IF/ELSE..

5 - Tu les envoies dans la fonction
sendMail($to, $from, $from_name, $subject, $body) 

2
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707
26 nov. 2014 à 12:53
Bonjour,
Sur quoi bloques tu exactement ?
Qu'as tu essayé ?
A partir de quoi souhaites tu envoyer ton mail ? ( tu as un compte email que tu peux utiliser via SMTP ? )

Eventuellement, regarde la class PHPMailer : https://github.com/PHPMailer/PHPMailer

Et voici un petit tuto :
http://phpmailer.worxware.com/?pg=examplebgmail
1
guedo Messages postés 77 Date d'inscription mercredi 26 novembre 2014 Statut Membre Dernière intervention 10 avril 2019 1
Modifié par jordane45 le 26/11/2014 à 14:40
Merci jordane45 pour ta consideration.
je n'ai encore rien essayer a ce propos je sais uniquement qu'il faut utiliser du php .
j'ai une adresse gmail normal.
et j'ai trouver ce fichier

<?php
// check if fields passed are empty
if(empty($_POST['name'])    ||
   empty($_POST['phone'])   ||
   empty($_POST['email'])   ||
   empty($_POST['message']) ||
   !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
   {
 echo "No arguments Provided!";
 return false;
   }
 
$name = $_POST['name'];
$phone = $_POST['phone'];
$email_address = $_POST['email'];
$message = $_POST['message'];
 
// create email body and send it 
$to = 'your-email@your-domain.com'; // PUT YOUR EMAIL ADDRESS HERE
$email_subject = "Modern Business Contact Form:  $name"; // EDIT THE EMAIL SUBJECT LINE HERE
$email_body = "You have received a new message from your website's contact form.\n\n"."Here are the details:\n\nName: $name\n\nPhone: $phone\n\nEmail: $email_address\n\nMessage:\n$message";
$headers = "From: noreply@your-domain.com\n";
$headers .= "Reply-To: $email_address"; 
mail($to,$email_subject,$email_body,$headers);
return true;   
?>

est ce que tu pourais m'aider a le configurer stp ?
est-il possible d'utiliser une adresse gmail classique pour cette fonction ?
Peut-on faire des test sur le bon fonctionnement de cette fonction sans avoir mon site en ligne (j'utilise notepad++ et je launch in chrome pour les test)?
Merci encore


EDIT : Ajout des balises de code.
0
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707 > guedo Messages postés 77 Date d'inscription mercredi 26 novembre 2014 Statut Membre Dernière intervention 10 avril 2019
26 nov. 2014 à 14:43
Ce bout de code ne fonctionnera pas en local sur ton poste ( hormis en faisant plein de paramétrages divers et variés sur ton wampserver (ou easyPhp.. ou tout autre moteur PHP/mysql que tu y aurais installé...)

C'est pour ça que je t'ai proposé d'utiliser la class PHPMAILER.
Pour l'utilisation avec GMAIL . tout y est indiqué...(dans le tuto que je t'ai indiqué dans ma réponse précédente).


PS: Pour tes prochains messages.. merci d'utiliser les balises de code!
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
0
guedo Messages postés 77 Date d'inscription mercredi 26 novembre 2014 Statut Membre Dernière intervention 10 avril 2019 1
26 nov. 2014 à 15:39
ok
merci encore une fois j'espère pouvoir me débrouiller avec tes indications
0
guedo Messages postés 77 Date d'inscription mercredi 26 novembre 2014 Statut Membre Dernière intervention 10 avril 2019 1
27 nov. 2014 à 12:46
rebonjour jordane45 j'espère que je te dérange pas mais j'ai regarder les liens que tu m'as joint dans ta première réponse:
https://github.com/PHPMailer/PHPMailer pour la classe PHPMAILER
et http://phpmailer.worxware.com/?pg=examplebgmail
mais je ne comprend pas le fonctionnement de la classe (je ne comprend pas comment l'appliquer) je sais que c'est pas du tout la politique des blogueurs de procédé de cette façon, mais moi j'apprend en voyant l'application des exercice, j'ai besoin d'exemple que je comprend pour pouvoir les appliquer par la suite .
J'ai en effet a configurer 3 formulaires a envoyer automatiquement par mail.
puis-je te demander de me le faire pour mon formulaire de contact que je te joindrais si tu me l'accorde (je pourrais te joindre les autre formulaire a configurer comme preuve que je dois les faire).
Merci d'avance.
0
jordane45 Messages postés 38321 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 décembre 2024 4 707
27 nov. 2014 à 13:52
Dans ce cas....
Postes ici ton premier formulaire HTML.
Je vais essayer de t'en faire un exemple facile à utiliser....

NB : AVANT de poster ton code, merci d'aller lire le contenu de ce lien:
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Il explique comment poster proprement du code sur ce site.

0

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

Posez votre question
guedo Messages postés 77 Date d'inscription mercredi 26 novembre 2014 Statut Membre Dernière intervention 10 avril 2019 1
Modifié par jordane45 le 27/11/2014 à 15:22
<div class="row">
            <div class="col-md-8">
                <h3>Envoyez nous un message</h3>
                <form name="sentMessage" id="contactForm" novalidate METHOD=POST>
                    <div class="control-group form-group">
                        <div class="controls">
                            <label>Nom Prénom:</label>
                            <input type="text" class="form-control" id="name" required data-validation-required-message="Please enter your name.">
                            <p class="help-block"></p>
                        </div>
                    </div>
                    <div class="control-group form-group">
                        <div class="controls">
                            <label>Telephone:</label>
                            <input type="tel" class="form-control" id="phone" required data-validation-required-message="Please enter your phone number.">
                        </div>
                    </div>
                    <div class="control-group form-group">
                        <div class="controls">
                            <label>Email:</label>
                            <input type="email" class="form-control" id="email" required data-validation-required-message="Please enter your email address.">
                        </div>
                    </div>
                    <div class="control-group form-group">
                        <div class="controls">
                            <label>Message:</label>
                            <textarea rows="10" cols="100" class="form-control" id="message" required data-validation-required-message="Please enter your message" maxlength="999" style="resize:none"></textarea>
                        </div>
                    </div>
                    <div id="success"></div>
                    <!-- For success/fail messages -->
                    <button type="submit" class="btn btn-primary">Envoyer</button>
                </form>
            </div>

        </div>
0
guedo Messages postés 77 Date d'inscription mercredi 26 novembre 2014 Statut Membre Dernière intervention 10 avril 2019 1
27 nov. 2014 à 15:15
Excuse moi j'ai validez la fonction html dans la zone de texte mais je sais pas si sa à marché
dautre part merci pour tes explications je continue de regardé mais je pense qu'un exemple adapté sur le formulaire que je t'ai donné me serait beaucoup plus comprehemsible
je te remercie pour tout
0