Se connecter avec
S'enregistrer | Connectez-vous

[PHP] Problème de fonction mail()

Dernière réponse : dans Programmation

Bonjour,

J'ai installer le serveur apache + php + MySQL + phpMyAdmin. Jusque la tout se passe normalement.
Sur mon site Web j'aimerais installer un formulaire gérer par la focntion mail().

Voici le code que j'ai pour ma page html (formulaire.html)
  1. <form id="form1" name="form1" method="post" action="<a href="http://www.monsite.com/envoi.php" target="_blank">http://www.monsite.com/envoi.php</a>">
  2. <label>
  3. <input name="Nom" type="text" id="Nom" />
  4. </label>
  5. <label></label>
  6. <p>
  7. <label>
  8. <input name="Prénom" type="text" id="Prénom" />
  9. </label>
  10. </p>
  11. <p>
  12. <label>
  13. <input name="Société" type="text" id="Société" />
  14. </label>
  15. </p>
  16. <p> </p>
  17. <p>
  18. <label>
  19. <input name="Email" type="text" id="Email" />
  20. </label>
  21. </p>
  22. <p>
  23. <label>
  24. <input name="Tel" type="text" id="Tel" />
  25. </label>
  26. </p>
  27. <p>
  28. <label>
  29. <input name="Adresse" type="text" id="Adresse" />
  30. </label>
  31. </p>
  32. <p>
  33. <label>
  34. <input name="Cp" type="text" id="Cp" />
  35. </label>
  36. </p>
  37. <p>
  38. <label>
  39. <input name="Ville" type="text" id="Ville" />
  40. </label>
  41. </p>
  42. <p> </p>
  43. <p>
  44. <label>
  45. <input name="Description" type="text" id="Description" size="55" />
  46. </label>
  47. </p>
  48. <p> </p>
  49. <p>
  50. <label>
  51. <input type="radio" name="Nombre de pages" value="0<->5" />
  52. 0 <-> 5 pages</label>
  53. <br />
  54. <label>
  55. <input type="radio" name="Nombre de pages" value="5<->10" />
  56. 5 <-> 10 pages</label>
  57. <br />
  58. <label>
  59. <input type="radio" name="Nombre de pages" value="10<->20" />
  60. 10 <-> 20 pages</label>
  61. <br />
  62. <label>
  63. <input type="radio" name="Nombre de pages" value="20 et plus" />
  64. 20 pages et plus</label>
  65. </p>
  66. <p> </p>
  67. <p>
  68. <label>
  69. <input type="radio" name="Nombre d'images" value="0<->10" />
  70. 0 <-> 10 images</label>
  71. <br />
  72. <label>
  73. <input type="radio" name="Nombre d'images" value="10<->25" />
  74. 10 <-> 25 images</label>
  75. <br />
  76. <label>
  77. <input type="radio" name="Nombre d'images" value="25<->50" />
  78. 25 <-> 50 images</label>
  79. <br />
  80. <label>
  81. <input type="radio" name="Nombre d'images" value="50 et plus" />
  82. 50 images et plus</label>
  83. </p>
  84. <p> </p>
  85. <p>
  86. <label>
  87. <input name="Animations" type="checkbox" id="Animations" value="ok" />
  88. </label>
  89. Animations</p>
  90. <p>
  91. <label>
  92. <input name="Vidéos" type="checkbox" id="Vidéos" value="ok" />
  93. </label>
  94. Vidéos</p>
  95. <p>
  96. <label>
  97. <input name="Formulaires" type="checkbox" id="Formulaires" value="ok" />
  98. Formulaires</label>
  99. </p>
  100. <p>
  101. <label>
  102. <input name="Base de données" type="checkbox" id="Base de données" value="ok" />
  103. Base de données</label>
  104. <br />
  105. <br />
  106. <label></label>
  107. </p>
  108. <p>  </p>
  109. <p>
  110. <label>
  111. <input name="Submit" type="submit" onclick="MM_validateForm('Nom','','R','Prénom','','R','Société','','R','Email','','RisEmail','Tel','','R');return document.MM_returnValue" value="Envoyer" />
  112. <input type="reset" name="Submit2" value="Effacer" />
  113. </label>
  114. </p>
  115. </form>

et voici le code de la page envoi.php :
  1. <body>
  2. <?
  3.  
  4. $MailTo = "mon email";
  5. $MailSubject = "sujet1";
  6. $MailHeader = "$Email";
  7.  
  8. $MailBody .= "Nom : $Nom\n";
  9.  
  10. $MailBody .= "Prenom: $Prénom\n";
  11.  
  12. $MailBody .= "Societe : $Société\n";
  13.  
  14. $MailBody .= "Telephone : $Tel\n";
  15.  
  16. $MailBody .= "Adresse : $Adresse\n";
  17.  
  18. $MailBody .= "Cp : $Cp\n";
  19.  
  20. $MailBody .= "Ville: $Ville\n";
  21.  
  22. $MailBody .= "Description du site : $Description\n";
  23.  
  24. $MailBody .= "Nombre de pages : $Nombre de pages\n";
  25.  
  26. $MailBody .= "Nombre d'images : $Nombre d'images\n";
  27.  
  28.  
  29. //Routine pour les cases à cocher
  30.  
  31. $MailBody .="Option : ";
  32.  
  33. $items = 4; //initialisation du nombre d'items possibles
  34.  
  35. for ($i = 1; $i <= $items; $i++)
  36.  
  37. { //boucle sur le nombre d'items
  38. $MailBody .= "$champ8[$i], "; //stockage des items choisis dans la variable MailBody
  39. }
  40.  
  41. //Envoi du message
  42.  
  43. mail($MailTo, $MailSubject, $MailBody, $MailHeader); //envoi du message
  44.  
  45. Header("Location: http://monsite/remerciement.html");
  46.  
  47. ?>
  48.  
  49. </body>

Mais ça fonctionne pas !!! je ne reçoit aucun email sur ma boîte

Dans le fichier php.ini
J'ai mis comme valeur ceci pour la variable SMTP :
SMTP = smtp.tele2.fr;

Mais tjrs rien , est ce que quelqu'un pourrait m'aider à résoudre ce problème.

Merci

Autres pages sur : php probleme fonction mail

Lassé par la pub ? Créez un compte

Citation :
1/je pense pas que ce genre de code est source de problème,
2/je sais pas si je reçoit bien les valeurs dans mes variables, mais je devrait quand même recevoir un mail dans ma boîte ? non ?


1/ Verifie on ne sait jamais.
2/ voir 1/ :ange: . Pour le mail reçu ou pas ... Teste déjà ta fonction mail(); sans variables voir si ca marche ...

Règle générale ne jamais présumé de l'existence ou du fonctionnement de quelque chose ;) 

edit: d'autant que je viens de calculer que tu ne verifie même pas ce qui est renvoyé par mail(); ...

Citation :
Déjà les
  1. é

Dans les noms de champs/ID etc, ça doit pas aider :o 

+1.. Ne jamais utiliser de caractères spéciaux dans les noms des 'id' et 'class' des objets (valable aussi pour l'attribut 'name').. Et un ID ou une Class ne doit pas commencer par un chiffre.. C'est un peu la même chose pour les variables PHP.....

Une fois ce soucis réglé, tu y verras plus clair : puisque tu as des caractères spéciaux un peu partout où il ne faut pas..

:jap: 

J'ai essayer en enlevant tout les caractères spéciaux, j'ai mis tout les champs en commentaire à part le nom, mais ça ne focntionne toujours pas.
Est ce que l'adresse à laquelle j'envoi le mail doit obligatoirement être associé au SMTP, par ex :
SMTP = smtp.tele2.fr et que mon adresse mail n'est pas chez tele2, ex : aaa@hotmail.fr
???
Merci

Citation :
J'ai essayer en enlevant tout les caractères spéciaux, j'ai mis tout les champs en commentaire à part le nom, mais ça ne focntionne toujours pas.
Est ce que l'adresse à laquelle j'envoi le mail doit obligatoirement être associé au SMTP, par ex :
SMTP = smtp.tele2.fr et que mon adresse mail n'est pas chez tele2, ex : aaa@hotmail.fr
???
Merci

Si tu n'as aucun compte chez Tele2, je ne vois pas pourquoi tu utilises leur SMTP :??: .. Maintenant, si ton FAI est Tele2, tu as certainement une boîte ouverte chez eux en liaison avec ton accès Internet.. Si c'est le cas, essaie avec les paramètres de cette boîte.. Sinon, rien ne t'interdit d'en ouvrir une, même si tu ne t'en sers pas pour autre chose..

Cependant, je dis ça sans bien connaître l'utilisation d'un serveur de mail installé en local [:spamafote]..

:jap: 

Salut, j'ai eu le même problème que toi. En faisant des tests je me suis rendu compte qu'hotmail considère les mails envoyés avec la fonction mail() de php pour du courrier indésirable!!! C'est quand j'ai ouvert ce dossier que je me suis trouvé très c*n... 26 mails :D 
Enfin voila.. essaie avec une autre adresse, il y a des chances pour que ça fonctionne

Ciao.
Lassé par la pub ? Créez un compte