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 18203 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 =)



A voir également:

7 réponses

Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   3 193
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   3 193
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   3 193
 
$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   Statut Contributeur Dernière intervention   3 193
 
le 2° pet surement être replacé par "\r\n"
0
Naruto-aurel Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
La deuxième solution fonctionne =).


Merci beaucoup de ton aide, c'est vraiment gentil.
0
Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   3 193
 
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