mail en php

Répondre
delfyno
le 21/10/2010 à 22:42
delfyno
Bonjour,
J'ai crée un site et lorsque je reçois un mail, je ne vois pas l'expéditeur du méssage. En fait lorsque je vais dans ma boite mail, je vois bien le message mais je vois message de moi envoyé à moi et c'est embêtant car je ne peux répondre à celui qui à envoyé le message
message de "moi@monemail.com" envoyé à "moi@monemail.com".
Comment puis je résoudre ce problème s'il vous plaît?
Merci d'avance
moogli
le 22/10/2010 à 00:04
moogli
Salut,

Regarde la doc de la fonction mail et surtout les exemples avec les entetes additionnelles c'est la que tu indique l'expediteur que recupere dans le formulaire de contact !

@+
Il en faut peu pour être heureux !!!!!
delfyno
le 22/10/2010 à 11:33
delfyno
Voici mon code, vous pouvez me dire ce qui ne va pas s'il vous plaît
  1. <?php <?php
  2. ini_set("SMTP","smtp.ifrance.com");
  3. /* ****************************CONFIGURATION */
  4. // destinataire est votre adreese mail. Pour envoyer à plusieurs à la fois, séparez par une virgule
  5. $destinataire = 'mon adressemail@hotmail.com';

  6. // copie ? (envoie une copie au visiteur)
  7. $copie = 'non'; //'oui' ou 'non'

  8. // messages de confirmation
  9. $message_envoye = "Votre message nous est bien parvenu !<br> Vous allez être automatiquement rédirigé à <b>l'accueil</b> !";
  10. $message_non_envoye = "L'envoie du message a échoué, veuillez réessayer SVP";

  11. // messages d'erreur du formulaire
  12. $message_erreur_formulaire = "Vous devez d'abord <a href=\"contact2.php\">envoyer le formulaire</a>.";
  13. $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

  14. /* ***********************************************
  15. FIN DE LA CONFIGURATION */

  16. //on teste si le formulaire a été soumis
  17. if (!isset($_POST['envoi'])) {
  18. //formulaire non envoyé
  19. echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
  20. }
  21. else {
  22. //cette fonction sert à nettoyer et enregistrer un texte
  23. function Rec($text) {
  24. $text = trim($text); //éfface les espaces vides au début et à la fin du texte
  25. if (1 === get_magic_quotes_gpc()) {
  26. $stripslashes = create_function('$txt', 'return stripslashes($txt);');
  27. }
  28. else {
  29. $stripslashes = create_function('$txt', 'return $txt;');
  30. }

  31. //magic quote ?
  32. $text = $stripslashes($text);
  33. $text = htmlspecialchars($text, ENT_QUOTES); //converts to string width " and ' as well
  34. $text = nl2br($text);
  35. return $text;
  36. };

  37. // cette fonction sert à vérifier la syntaxe d'un email
  38. function IsEmail($email) {
  39. $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
  40. return (@eregi($pattern,$email)) ? true : false;
  41. };

  42. //formulaire envoyé, on récupère tous les champs
  43. $nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
  44. $email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
  45. $objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : '';
  46. $message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';

  47. //on va vérifier les variables et l'email
  48. $email = (IsEmail($email)) ? $email : ''; //soit l'email est vide si érroné, soit il vaut l'email rentré

  49. if (($nom != '') && ($email != '') && ($message != '')) {
  50. //les 4 variables sont remplies, on génère puis envoie le mail
  51. $headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";

  52. //envoyer une copie au visiteur
  53. if ($copie == 'oui') {
  54. $cible = $destinataire.','.$email;
  55. }
  56. else {
  57. $cible = $destinataire;
  58. };
  59. // Remplacement de certains caractères spéciaux
  60. $message = str_replace("&#039;","'",$message);
  61. $message = str_replace("&#8217;","'",$message);
  62. $message = str_replace("&quot;",'"',$message);
  63. $message = str_replace('<br>','',$message);
  64. $message = str_replace('<br />','',$message);
  65. $message = str_replace("&lt;","<",$message);
  66. $message = str_replace("&gt;",">",$message);
  67. $message = str_replace("&amp;","&",$message);

  68. // Envoi du mail
  69. if (mail($cible, $objet, $message, $headers)) {
  70. echo '<p>'.$message_envoye.'</p>'."\n";
  71. }
  72. else {
  73. echo '<p>'.$message_non_envoye.'</p>'."\n";
  74. };

  75. }
  76. else {
  77. // une des 3 variables (ou plus) est vide
  78. echo '<p>'.$message_formulaire_invalide.' <a href="contact2.php">Retour au formulaire</a></p>'."\n";
  79. };
  80. }; //fin du if (!isset($_POST['envoi'])) ?>
moogli
le 22/10/2010 à 13:40
moogli
ligne 59 à 61 a priori c'est bon a voir si ces champs existe bien dans le formulaire !

@+
Il en faut peu pour être heureux !!!!!
delfyno
le 22/10/2010 à 22:26
delfyno
c'est bon ça marche sauf que je reçois les message en double maintenant. Voici mon code
  1. <?php
  2. // copie ? (envoie une copie au visiteur)
  3. $copie = 'non'; //'oui' ou 'non'

  4. // messages de confirmation
  5. $message_envoye = "Votre message nous est bien parvenu !<br> Vous allez être automatiquement rédirigé à <b>l'accueil</b> !";
  6. $message_non_envoye = "L'envoie du message a échoué, veuillez réessayer SVP";

  7. // messages d'erreur du formulaire
  8. $message_erreur_formulaire = "Vous devez d'abord <a href=\"contact2.php\">envoyer le formulaire</a>.";
  9. $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

  10. /* ***********************************************
  11. FIN DE LA CONFIGURATION */

  12. //on teste si le formulaire a été soumis
  13. if (!isset($_POST['envoi'])) {
  14. //formulaire non envoyé
  15. echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
  16. }
  17. else {
  18. //cette fonction sert à nettoyer et enregistrer un texte
  19. function Rec($text) {
  20. $text = trim($text); //éfface les espaces vides au début et à la fin du texte
  21. if (1 === get_magic_quotes_gpc()) {
  22. $stripslashes = create_function('$txt', 'return stripslashes($txt);');
  23. }
  24. else {
  25. $stripslashes = create_function('$txt', 'return $txt;');
  26. }

  27. //magic quote ?
  28. $text = $stripslashes($text);
  29. $text = htmlspecialchars($text, ENT_QUOTES); //converts to string width " and ' as well
  30. $text = nl2br($text);
  31. return $text;
  32. };

  33. // cette fonction sert à vérifier la syntaxe d'un email
  34. function IsEmail($email) {
  35. $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
  36. return (@eregi($pattern,$email)) ? true : false;
  37. };

  38. //formulaire envoyé, on récupère tous les champs
  39. $nom = $_POST['nom'];
  40. $email = $_POST['email'];
  41. $objet = $_POST['objet'];
  42. $message = $_POST['message'];

  43. //on va vérifier les variables et l'email
  44. $email = (IsEmail($email)) ? $email : ''; //soit l'email est vide si érroné, soit il vaut l'email rentré

  45. if (($nom != '') && ($email != '') && ($message != '')) {
  46. $msg = "Nom:\t$nom\n";
  47. $msg .= "E-mail:\t$email\n";
  48. $msg .= "Objet:\t$objet\n";
  49. $msg .= "Message:\t$message\n\n";

  50. $destinataire = "piresomurphy@hotmail.com";
  51. $subject = "zero.lescigales.org";

  52. $mailheaders = "From: My Web Site <> \n";
  53. $mailheaders .= "Reply-To: $sender_email\n\n";

  54. mail($destinataire, $subject, $msg, $mailheaders);

  55. // Remplacement de certains caractères spéciaux
  56. $message = str_replace("&#039;","'",$message);
  57. $message = str_replace("&#8217;","'",$message);
  58. $message = str_replace("&quot;",'"',$message);
  59. $message = str_replace('<br>','',$message);
  60. $message = str_replace('<br />','',$message);
  61. $message = str_replace("&lt;","<",$message);
  62. $message = str_replace("&gt;",">",$message);
  63. $message = str_replace("&amp;","&",$message);

  64. // Envoi du mail
  65. if (mail($destinataire, $subject, $msg, $mailheaders)) {
  66. echo '<p>'.$message_envoye.'</p>'."\n";
  67. }
  68. else {
  69. echo '<p>'.$message_non_envoye.'</p>'."\n";
  70. };
  71. }
  72. else {
  73. // une des 3 variables (ou plus) est vide
  74. echo '<p>'.$message_formulaire_invalide.' <a href="contact2.php">Retour au formulaire</a></p>'."\n";
  75. };
  76. }; //fin du if (!isset($_POST['envoi']))
  77. ?>
moogli
le 23/10/2010 à 00:30
moogli
ben c'est normal tu utilise deux fois la fonction mail (ligne 66 et 79)

vire le 1er et ça ira mieux ;)

@+
Il en faut peu pour être heureux !!!!!
delfyno
le 23/10/2010 à 04:40
delfyno
ah oui c'est vrai, je n'ai pas fais gaffe.
Je te remercie et je remercie aussi tous ceux qui m'ont répondu
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours