Version complète: sur le forum Webmaster Hub : [php] problème de fonction mail()
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
goma771
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)
CODE
<form id="form1" name="form1" method="post" action="http://www.monsite.com/envoi.php">
   <label>
   <input name="Nom" type="text" id="Nom" />
   </label>
   <label></label>
   <p>
     <label>
     <input name="Pr&eacute;nom" type="text" id="Pr&eacute;nom" />
     </label>
   </p>
   <p>
     <label>
     <input name="Soci&eacute;t&eacute;" type="text" id="Soci&eacute;t&eacute;" />
     </label>
   </p>
   <p>&nbsp;</p>
   <p>
     <label>
     <input name="Email" type="text" id="Email" />
     </label>
   </p>
   <p>
     <label>
     <input name="Tel" type="text" id="Tel" />
     </label>
   </p>
   <p>
     <label>
     <input name="Adresse" type="text" id="Adresse" />
     </label>
   </p>
   <p>
     <label>
     <input name="Cp" type="text" id="Cp" />
     </label>
   </p>
   <p>
     <label>
     <input name="Ville" type="text" id="Ville" />
     </label>
   </p>
   <p>&nbsp;</p>
   <p>
     <label>
     <input name="Description" type="text" id="Description" size="55" />
     </label>
   </p>
   <p>&nbsp;</p>
   <p>
     <label>
     <input type="radio" name="Nombre de pages" value="0<->5" />
0 <-> 5 pages</label>
     <br />
     <label>
     <input type="radio" name="Nombre de pages" value="5<->10" />
5 <-> 10 pages</label>
     <br />
     <label>
     <input type="radio" name="Nombre de pages" value="10<->20" />
10 <-> 20 pages</label>
     <br />
     <label>
     <input type="radio" name="Nombre de pages" value="20 et plus" />
20 pages et plus</label>
   </p>
   <p>&nbsp;</p>
   <p>
     <label>
     <input type="radio" name="Nombre d'images" value="0<->10" />
0 <-> 10 images</label>
     <br />
     <label>
     <input type="radio" name="Nombre d'images" value="10<->25" />
10 <-> 25 images</label>
     <br />
     <label>
     <input type="radio" name="Nombre d'images" value="25<->50" />
25 <-> 50 images</label>
     <br />
     <label>
     <input type="radio" name="Nombre d'images" value="50 et plus" />
50 images et plus</label>
   </p>
   <p>&nbsp;</p>
   <p>
     <label>
     <input name="Animations" type="checkbox" id="Animations" value="ok" />
     </label>
   Animations</p>
   <p>
     <label>
     <input name="Vid&eacute;os" type="checkbox" id="Vid&eacute;os" value="ok" />
     </label>
   Vid&eacute;os</p>
   <p>
     <label>
     <input name="Formulaires" type="checkbox" id="Formulaires" value="ok" />
     Formulaires</label>
   </p>
   <p>
     <label>
     <input name="Base de donn&eacute;es" type="checkbox" id="Base de donn&eacute;es" value="ok" />
     Base de données</label>
     <br />
     <br />
     <label></label>
   </p>
   <p>&nbsp; </p>
   <p>
     <label>
     <input name="Submit" type="submit" onclick="MM_validateForm('Nom','','R','Pr&eacute;nom','','R','Soci&eacute;t&eacute;','','R','Email','','RisEmail','Tel','','R');return document.MM_returnValue"  value="Envoyer" />
     <input type="reset" name="Submit2" value="Effacer" />
     </label>
   </p>
 </form>

et voici le code de la page envoi.php :
CODE
<body>
<?

$MailTo = "mon email";
$MailSubject = "sujet1";
$MailHeader = "$Email";

$MailBody .= "Nom : $Nom\n";

$MailBody .= "Prenom: $Pr&eacute;nom\n";

$MailBody .= "Societe : $Soci&eacute;t&eacute;\n";

$MailBody .= "Telephone : $Tel\n";

$MailBody .= "Adresse : $Adresse\n";

$MailBody .= "Cp : $Cp\n";

$MailBody .= "Ville: $Ville\n";

$MailBody .= "Description du site : $Description\n";

$MailBody .= "Nombre de pages : $Nombre de pages\n";

$MailBody .= "Nombre d'images : $Nombre d'images\n";


//Routine pour les cases à cocher

$MailBody .="Option : ";

$items = 4; //initialisation du nombre d'items possibles

for ($i = 1; $i <= $items; $i++)
 
{ //boucle sur le nombre d'items
$MailBody .= "$champ8[$i], "; //stockage des items choisis dans la variable MailBody
}
 
//Envoi du message

mail($MailTo, $MailSubject, $MailBody, $MailHeader); //envoi du message

Header("Location: http://monsite/remerciement.html");

?>

</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.votre_fai.com;

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

Merci
Kalt
J'ose espérer que tu n'as pas bêtement recopié "votre_fai" mais que tu l'as bien remplacé par le nom de ton fournisseur d'accès internet ?
goma771
répondre je l'ai pas recopier à l'identique mais je donne quel nom, par ex :
SMTP = smtp.tele2.com;

C'est bien ça ?
Kalt
Mauvais exemple... chez Télé 2, le SMTP c'est smtp.tele2.fr
goma771
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_AT_hotmail.fr
???
Merci
Kalt
Pas du tout, le smpt gère les envois de mail depuis ta machine, et il dépend de ton fournisseur d'accès. Par exemple, moi je suis chez wanadoo et donc j'utilise le smtp "smtp.wanadoo.fr" pour tester mes envois de mail en local, mais une fois mes scripts en ligne, ils utilisent le smtp de mon hébergeur. Et à chaque fois j'envoie les mails sur une adresse gmail, sans rapport avec le smtp de l'un ou de l'autre.
goma771
ok, mais moi j'héberge mon site sur ma machine, quel smtp, dois-je alors utiliser ?
NorSeb
Bonjour,

Comme dit plus haut, tu dois utiliser le serveur smtp de ton fournisseur d'accès.
goma771
Que dois-je mettre à la variable "sendmail_path".
Comment savoir si sendmail est installé sur apache, et comment le configurer ?
Merci
NorSeb
Rien, sendmail_path n'est à renseigner que sous Unix. C'est d'ailleurs ce qu'il y a marqué à la ligne au-dessus :
CITATION
; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =


Tu n'a fait aucun essai depuis 4 jours ?? blink.gif
goma771
si mais ça ne marche toujours pas, je n'y comprends rien, pourtant j'ai bien mis tout ce qu'il fallait !!! angry.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.