Envoie de mail en php

Résolu/Fermé
Naruto-aurel Messages postés 4 Date d'inscription vendredi 17 septembre 2010 Statut Membre Dernière intervention 17 septembre 2010 - 17 sept. 2010 à 09:21
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 17 sept. 2010 à 16:24
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 =)



A voir également:

7 réponses

Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
17 sept. 2010 à 09:25
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 )
0
Naruto-aurel Messages postés 4 Date d'inscription vendredi 17 septembre 2010 Statut Membre Dernière intervention 17 septembre 2010
17 sept. 2010 à 09:55
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.
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
17 sept. 2010 à 11:28
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 ...
0
Naruto-aurel Messages postés 4 Date d'inscription vendredi 17 septembre 2010 Statut Membre Dernière intervention 17 septembre 2010
17 sept. 2010 à 15:38
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
0

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

Posez votre question
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
17 sept. 2010 à 15:43
$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)
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
17 sept. 2010 à 15:43
le 2° pet surement être replacé par "\r\n"
0
Naruto-aurel Messages postés 4 Date d'inscription vendredi 17 septembre 2010 Statut Membre Dernière intervention 17 septembre 2010
17 sept. 2010 à 15:54
La deuxième solution fonctionne =).


Merci beaucoup de ton aide, c'est vraiment gentil.
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
17 sept. 2010 à 16:24
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
0