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

7 réponses

  1. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    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
  2. 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
  3. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    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
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    $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
    1. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
       
      le 2° pet surement être replacé par "\r\n"
      0
  7. 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
  8. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    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