Fonction: mail()

Bonsoir, voilà, j'ai un petit problème:
Quand j'utilise ma fonction "mail()" j'ai un message d'erreur qui apparait:

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\monsite\formulaire.php on line 61

Alors je vais voir dans php.ini et voilà ce que j'ai trouvé:

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

J'utilise WAMP, alors est ce que c'est mal configuré ou je dois utiliser ini_set() dans mon code?
Configuration: Windows XP
Firefox 2.0.0.11

7 réponses

  1. Contributeur
    salut,

    tu n'as pas de serveur SMTP installé en local, donc il faut que tu définisses l'adresse d'un serveur SMTP dans 'php.ini', le plus simple est d'utiliser celui de ton FAI.

    et pour le port, en général il ne bouge pas.
    1. bonjour,

      tu sait que pour utilise la fonction mail, tu doit avoir un serveur mail ??

      Failed to connect to mailserver at "localhost"

      1. Donc si je comprend bien DAlida, dans le fichier php.ini
        je met
        SMPT = smtp.neuf.fr
        smpt_port = 25

        ??
        1. Contributeur
          yep !
          et tu n'oublies pas de redémarrer Apache !
      2. Bon bas voilà, ca a l'air marché, on me dit que c'est bien envoyé, sauf que je recois rien du tout :(.
        Alors voici mon code:
        <?php
        include "entete.php";
        if(empty($_POST["email_exp"]))
        {
        ?>
        <form vname="FormName" action="formulaire.php" method="post" enctype="multipart/form-data" name="form">
        <table border="1" width="200" align="center">
        <tr><td>De :</td>
        <td>
        <input type="text" name="email_exp" size="35"/>
        </td>
        </tr>
        <tr><td>A :</td>
        <td><input type="text" value="*******@*******" name="email_dest" size="35" readonly/></td></tr>//Biensur j'ai mit mon adresse a la place de *** :)
        <tr><td>Sujet</td>
        <td><input type="text" name="email_sujet" size="40"/></td></tr>
        <tr><td>Message</td>
        <td><textarea rows="12" name="email_message" cols="60"></textarea></td></tr>
        <tr><td>Fichier Joint: </td>
        <td><input type="hidden" name="MAX_FILE_SIZE" value="100000"/><input name="NomFichier" type="file" size="16"/></td></tr>
        <tr><td><input type="submit" value="Envoyer"/></td></tr>
        </table>
        </form>
        <?php
        }
        else
        {
        $erreur=false;
        $erreur_nom="";
        }
        if (empty($_POST["email_message"]))
        {
        $erreur=true;
        $erreur_nom=$erreur_nom ."Vous devez saisir un texte dans la zone message<br>";
        }
        if (!ereg("@",$_POST["email_exp"]))
        {
        $erreur=true;
        $erreur_nom=$erreur_nom ."Votre adresse email est incorrect<br>";
        }
        if ($erreur)
        {
        echo "<center>";
        echo "<b><font size=4><br> Votre formulaire comporte les erreurs suivantes <br><br></font></b>";
        echo "$erreur_nom";
        echo "</center>";
        }
        else
        {
        echo ("<B><CENTER><FONT size=4 FACE=TAHOMA>Votre demande a été bien enregistrée</font></center>");
        $envoi=mail($_POST["email_dest"], $_POST["email_sujet"],$_POST["email_message"], "From: ".$_POST["email_exp"]);
        }
        include "basdepage.php";
        ?>
        1. Ok, désolé j'ai rien dit, ca marche parfaitement, sauf que ca envoie 5 min apres, mais une dernier question ché Free comment j'utilise ce service?
          1. Contributeur
            il peut y avoir des délais dans l'acheminement.

            je serais toi, j'attendrais un peu avant de me prendre la tête sur le code !
            -;o)

            <edit>
            et hop, on s'est croisés !
            </edit>
            1. Oué :) Mais tu saurais pas pour Free, ca marche comment? c'est déjà activé chéz eux?
              1. Contributeur
                c'est celui que j'utilise.
                ça fonctionne exactement de la même façon !