Votre question

[PHP] Envoi de mail

Tags :
  • Email
  • Programmation
Dernière réponse : dans Programmation
3 Juin 2010 09:52:31

Bonjour à vous,

Alors c'est assez important car je suis en stage dans une société et j'ai besoin d'aide.

J'ai créer un site web mais le problème c'est que je n'arrive pas à envoyer des variables par mail. Je voudrais que les personnes puissent envoyer des mails à partir du site.

Voici mon code sur la page où on remplit le formulaire :

  1. <form id="contact" method="post" action="traitement_formulaire.php">
  2. <?php
  3. mail("$email", "$objet", "$message" );
  4. ?>
  5. <fieldset><legend>Vos coordonnées</legend>
  6. <p><label for="nom">Prénom NOM:</label><input type="text" id="nom" name="nom" tabindex="1" /></p>
  7. <p><label for="email">Email :</label><input type="text" id="email" name="email" tabindex="2" /></p>
  8. </fieldset>
  9.  
  10. <fieldset><legend>Votre message :</legend>
  11.  
  12. <p><label for="objet">Objet :</label><input type="text" id="objet" name="objet" tabindex="3" /></p>
  13. <p><label for="message">Message :</label><textarea id="message" name="message" tabindex="4" cols="30" rows="8"></textarea></p>
  14. </fieldset>
  15.  
  16. <div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer" /><input type="reset" name="effacer" value="Effacer tout"/> </div><br/>
  17. </form>


Et voilà le code sur l'autre page "traitement_formulaire.php"

  1. <?php
  2. /*
  3. ********************************************************************************************
  4. CONFIGURATION
  5. ********************************************************************************************
  6. */
  7. // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
  8. $destinataire = 'monadresse@mail.fr';
  9.  
  10. // copie ? (envoie une copie au visiteur)
  11. $copie = 'non'; // 'oui' ou 'non'
  12.  
  13. // Messages de confirmation du mail
  14. $message_envoye = "Votre mail a bien été envoyé à ADIE.fr, à bientôt <b>$nom</b> !;";
  15. $message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";
  16.  
  17. // Messages d'erreur du formulaire
  18. $message_erreur_formulaire = "Vous devez d'abord <a href=\"contact.php\">envoyer le formulaire</a>.";
  19. $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";
  20.  
  21. /*
  22. ********************************************************************************************
  23. FIN DE LA CONFIGURATION
  24. ********************************************************************************************
  25. */
  26.  
  27. // on teste si le formulaire a été soumis
  28. if (!isset($_POST['envoi']))
  29. {
  30. // formulaire non envoyé
  31. echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
  32. }
  33. else
  34. {
  35. /*
  36. * cette fonction sert à nettoyer et enregistrer un texte
  37. */
  38. function Rec($text)
  39. {
  40. $text = trim($text); // delete white spaces after & before text
  41. if (1 === get_magic_quotes_gpc())
  42. {
  43. $stripslashes = create_function('$txt', 'return stripslashes($txt);');
  44. }
  45. else
  46. {
  47. $stripslashes = create_function('$txt', 'return $txt;');
  48. }
  49.  
  50. // magic quotes ?
  51. $text = $stripslashes($text);
  52. $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
  53. $text = nl2br($text);
  54. return $text;
  55. };
  56.  
  57. /*
  58. * Cette fonction sert à vérifier la syntaxe d'un email
  59. */
  60. function IsEmail($email)
  61. {
  62. $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
  63. return (eregi($pattern,$email)) ? true : false;
  64. };
  65.  
  66. // formulaire envoyé, on récupère tous les champs.
  67. $nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
  68. $email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
  69. $objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : '';
  70. $message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
  71.  
  72. // On va vérifier les variables et l'email ...
  73. $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
  74.  
  75. if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
  76. {
  77. // les 4 variables sont remplies, on génère puis envoie le mail
  78. $headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";
  79.  
  80. // envoyer une copie au visiteur ?
  81. if ($copie == 'oui')
  82. {
  83. $cible = $destinataire.','.$email;
  84. }
  85. else
  86. {
  87. $cible = $destinataire;
  88. };
  89.  
  90. // Remplacement de certains caractères spéciaux
  91. $message = str_replace("'","'",$message);
  92. $message = str_replace("’","'",$message);
  93. $message = str_replace(""",'"',$message);
  94. $message = str_replace('<br>','',$message);
  95. $message = str_replace('<br />','',$message);
  96. $message = str_replace("<","<",$message);
  97. $message = str_replace(">",">",$message);
  98. $message = str_replace("&","&",$message);
  99.  
  100. // Envoi du mail
  101. if (mail($cible, $objet, $message, $headers))
  102. {
  103. echo '<p>'.$message_envoye.'</p>'."\n";
  104. }
  105. else
  106. {
  107. echo '<p>'.$message_non_envoye.'</p>'."\n";
  108. };
  109. }
  110. else
  111. {
  112. // une des 3 variables (ou plus) est vide ...
  113. echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n";
  114. };
  115. }; // fin du if (!isset($_POST['envoi']))
  116. ?>


EDIT : J'utilise WAMPSERVER, et je pense avoir bien paramétrer le fichier php.ini après avoir vue des explications sur internet. J'ai chercher aussi des explications pour envoyer des mails mais en vain, je n'y arrive pas du tout ! :pfff: 

Merci, c'est vraiment urgent pour la société et je dois régler ça au plus vite.

Cordialement.

Autres pages sur : php envoi mail

3 Juin 2010 10:32:54

Oups...

supprimer ce post svp.
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS