Envoie de mail en php
Résolu
Naruto-aurel
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Nabla's Messages postés 18201 Date d'inscription Statut Contributeur Dernière intervention -
Nabla's Messages postés 18201 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je dois réaliser un formulaire de mail en php. Mais cela ne fonctionne pas... J'ai pourtant installer un serveur de mail smtp, j'ai réussis à envoyer un mail mais il ne me retournait pas le contenu voulu.
if(isset($_POST['captcha'])AND isset($_POST['Nom'])AND isset($_POST['Prénom'])AND isset($_POST['Téléphone'])AND isset($_POST['Email'])AND isset($captchacrypte)){
if ( $captchacrypte == md5($_POST['captcha']) AND !empty($_POST['captcha']) AND !empty($_POST['Nom']) AND !empty($_POST['Prénom']) AND !empty($_POST['Téléphone']) AND !empty($_POST['Email'])){
echo "\t\t\t<B style=\"color : #00ff00;\">Votre email a bien été transféré</b><br />\n";
$destinataire = "test@test.fr";
$objet = "Formulaire" ;
$message = $_REQUEST['Nom'] ;
$message .= $_REQUEST['Prénom'] ;
$message .= $_REQUEST['Téléphone'] ;
$message .= $_REQUEST['Email'] ;
$message = "C'est un premier test d'envoi d'un email en php.\n" ;
$message .= "comment sa va? \n";
// On envoi l'email
if( mail($destinataire, $objet, $message) ){ echo "Envoi du mail réussi.";
}
else{ echo "Echec de l'envoi du mail.";
}
}
else if ( $captchacrypte == md5($_POST['captcha']) AND !empty($_POST['captcha']) OR empty($_POST['Nom']) OR empty($_POST['Prénom']) OR empty($_POST['Téléphone']) OR empty($_POST['Email'])){
echo "\t\t\t<B style=\"color : #ff0000;\">Vérifier les champs obligatoires</b><br />\n";
}
else if ( !empty($_POST['captcha']) ) {
echo "\t\t\t<B style=\"color : #ff0000;\">Vérifier le captcha</b><br />\n";
}
}?>
Voila mon code, ce que je voudrais, c'est que le contenu du mail ait le nom, le prénom, le numéro de téléphone et l'email de l'utilisateur qui a remplis le formulaire.
Merci d'avance =)
Je dois réaliser un formulaire de mail en php. Mais cela ne fonctionne pas... J'ai pourtant installer un serveur de mail smtp, j'ai réussis à envoyer un mail mais il ne me retournait pas le contenu voulu.
if(isset($_POST['captcha'])AND isset($_POST['Nom'])AND isset($_POST['Prénom'])AND isset($_POST['Téléphone'])AND isset($_POST['Email'])AND isset($captchacrypte)){
if ( $captchacrypte == md5($_POST['captcha']) AND !empty($_POST['captcha']) AND !empty($_POST['Nom']) AND !empty($_POST['Prénom']) AND !empty($_POST['Téléphone']) AND !empty($_POST['Email'])){
echo "\t\t\t<B style=\"color : #00ff00;\">Votre email a bien été transféré</b><br />\n";
$destinataire = "test@test.fr";
$objet = "Formulaire" ;
$message = $_REQUEST['Nom'] ;
$message .= $_REQUEST['Prénom'] ;
$message .= $_REQUEST['Téléphone'] ;
$message .= $_REQUEST['Email'] ;
$message = "C'est un premier test d'envoi d'un email en php.\n" ;
$message .= "comment sa va? \n";
// On envoi l'email
if( mail($destinataire, $objet, $message) ){ echo "Envoi du mail réussi.";
}
else{ echo "Echec de l'envoi du mail.";
}
}
else if ( $captchacrypte == md5($_POST['captcha']) AND !empty($_POST['captcha']) OR empty($_POST['Nom']) OR empty($_POST['Prénom']) OR empty($_POST['Téléphone']) OR empty($_POST['Email'])){
echo "\t\t\t<B style=\"color : #ff0000;\">Vérifier les champs obligatoires</b><br />\n";
}
else if ( !empty($_POST['captcha']) ) {
echo "\t\t\t<B style=\"color : #ff0000;\">Vérifier le captcha</b><br />\n";
}
}?>
Voila mon code, ce que je voudrais, c'est que le contenu du mail ait le nom, le prénom, le numéro de téléphone et l'email de l'utilisateur qui a remplis le formulaire.
Merci d'avance =)
7 réponses
-
je sais pas si c'est ca, mais ton code présente unne petite incohérence ici:
$message = $_REQUEST['Nom'] ;
$message .= $_REQUEST['Prénom'] ;
$message .= $_REQUEST['Téléphone'] ;
$message .= $_REQUEST['Email'] ;
$message = "C'est un premier test d'envoi d'un email en php.\n" ;
$message .= "comment sa va? \n";
T'as pas oublié un . devant le = a tout hasard ??? (sinon les lignes du dessus en servent à rien ) -
Maintenant sa fonctionne merci beaucoup.
L'envoie de mail fonctionne très bien, mais je n'arrive pas envoyer les champs qui proviennent du formulaire. Dans l'email que je recois, il n'y a que les deux champs texte et non les variables du formulaire.
Merci d'avance. -
Je connais pass l'utilisation de $_REQUEST, mais ce que je trouve idio, c'est que tu fais tous tes tests avec $_POST et qu'au final tu utilises $_REQUEST. Perso j'aurai mis post partout ... comme je te le dis, je ne connais pas requets, mais au moins le code aurai été consistant ...
-
Merci pour tes réponses^^.
j'ai utiliser la méthode post et cela fonctionne correctement.
if(isset($_POST['Nom'])AND isset($_POST['Prénom'])){
$destinataire = "test@test.fr";
$objet = "Formulaire de contact" ;
$message .= $_POST['Nom'];
$message .= $_POST['Prénom'] ;
$message .= $_POST['Téléphone'] ;
$message .= $_POST['Email'] ;
$message .= $_POST['commentaire'] ;
// On envoi l'email
if( mail($destinataire, $objet, $message) ){ echo "Envoi du mail réussi.";
}
else{ echo "Echec de l'envoi du mail.";
}
}else{
echo "\t\t\t<B style=\"color : #ff0000;\">Vérifier les champs obligatoires</b><br />\n";
}
?>
Il me reste un dernier problème, c'est qu'à la reception de mon message, tout les champs sont collés dans le mail reçus.
Comment faut-il que je fasse pour que mes champs ne soit plus collés. J'ai pensé utiliser un <br/> mais l'envoie de mail me retourne des erreurs... je dois suremetn faire des fautes de syntax.
exemple: kevinDujardin087965 --> sa me retourne sa
et j'aimerais avoir sa:
kevin
dujardin
087965
Merci d'avance -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
$message .= $_POST['Nom'] . "<br />";
$message .= $_POST['Prénom'] . chr(10) . chr(13) ;
$message .= $_POST['Téléphone'] ;
$message .= $_POST['Email'] ;
$message .= $_POST['commentaire'] ;
essayes et dis moi lequel fonctionne ... (le premier c'est si ton mail est en HTML, le 2° si c'est en format texte simple) -
La deuxième solution fonctionne =).
Merci beaucoup de ton aide, c'est vraiment gentil. -
y a pa'd'quoi
Les \r\n corresond à retour chariot, et nouvelle ligne (c'est le format windows)
en unix c'est juste \n et sous mac c'est juste \r ...; mais bon, en mettant \r\n ca marche à tous les coups
ces caractères sotn respectivement els caractères ascii 13 et 10 ...
voili voilou