IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Mail] Fonction mail () de php


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Avril 2004
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 73
    Points : 43
    Points
    43
    Par défaut [Mail] Fonction mail () de php
    Bonjour,

    Je vous explique mon problème,
    j'ai installer les programmes suivant sur mon pc (OS : Windows XP Pro) :

    Apache 2.0.54
    php 5.0.5
    phpMyAdmin 2.6.4
    mysql 4.1.14

    Jusque la tout se passe sans problème, mon site Web est bien héberger sur ma machine.

    Mais j'aimerais créer un formulaire de contact au sein de mon site avec la fonction mail() de php.

    Pour ce, j'ai modifier le fichier php.ini comme ceci (mon FAI est Skynet et leur SMTP est : relay.skynet.be) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    [mail function]
    ; For Win32 only.
    SMTP = relay.skynet.be
    smtp_port = 25
    Ensuite, dans ma page html (la page qui pointera, vers la page mail.php) j'ai ceci comme code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <head>            
    <title>Formulaire de contact</title>
    </head>              
    <body bgcolor="#ffffff">
    <form name="contact" action="mail.php" method="POST">
                  <center> 
                  Votre e-mail : <input type="text" name="email"><br>
                  Objet : <input type="text" name="objet"><br>
                  Votre message : <textarea name="message" rows="10" cols="25"></textarea><br><br>
                  <input type="submit" name="submit" value="envoyer">
                  </center></form></body>
    Et enfin dans ma page mail.php, j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <? 
     
     
        $email = $_POST['email'];
        $objet = $_POST['objet'];
        $message = $_POST['message'];
     
     
        if (mail ("monnom@skynet.be", "$objet", "$message","FROM: $email")){
        echo 'message envoyé !';} else { echo 'problème lors de l\'envoi !';}
     
     
    ?>
    Lorsque je teste tout cela en ligne, une fois que je clicke sur envoyer, il me dit que l'email à bien été envoyer,
    mais je ne reçoit jamais les emails sur ma boîte de réception !!!!
    Je n'y comprends rien !!!

    Est ce que mon fichier php.ini est bien configuré ? est ce qu'il ne manque pas quelque chose?
    Faut-il que j'installe un sendmail sur mon serveur ? si oui, ou le trouver, et coment le configurer ?

    Je sais vraiment plus quoi faire, j'ai effectué plein de test, mais sans résultats !!!

    Si quelqu'un pourrait me donner un coup de pouce, ce serait cool.

    Merci d'avance.

  2. #2
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Et si dans la balise form tu rajoutes enctype="multipart/form-data"?
    P.S Je ferai aussi un stripslashes($_POST['champ']) aussi pour enlever les slashes.

  3. #3
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Citation Envoyé par Anduriel
    Et si dans la balise form tu rajoutes enctype="multipart/form-data"?
    Pour quelle raison ?
    Consultant idéaliste.

  4. #4
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Je sais pas des fois ça change, comme pour les fichiers (mais c'est normal)

    C'est peut être une question d'headers alors?

  5. #5
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Un enctype="text/plain" à la rigueur mais comme c'est implicite.
    Consultant idéaliste.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Points : 1 206
    Points
    1 206
    Par défaut
    Tout m'a l'air correct. Il s'agit sans doute d'un problème de config de la fonction mail(). Sous windows, je ne peux pas t'aider beaucoup. Par contre tu peux tester les autres paramètres en court-circuitant la fonction mail() de PHP. On va directement "parler SMTP" au travers d'un socket à ton serveur SMTP. Si ceci marche, c'est que le problème est bien au niveau de ta config PHP. Essaye ceci:

    • La fonction
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      function monMail($to, $sujet, $msg, $headers = null){
        $host = 'relay.skynet.be';
        $from = 'toi@skynet.be'; // ton adresse d'expéditeur
        if (!$socket  =  fsockopen ($host, 25, $errno, $errstr, 1)){
            echo $errno.'-'.$errstr;
            return false;
        }else{
          fputs($socket, "EHLO ton_domaine.com\n");
          fputs($socket, "MAIL FROM:<$from>\n");
          fputs($socket, "RCPT TO:<$to>\n");
          fputs($socket, "DATA\n");
          fputs($socket, "To: $to\nFrom: $from\nSubject:$sujet\n$headers\n\n$msg\n.\n");
          fputs($socket, "$msg\n.\n");
          fputs($socket, "QUIT\n");
          fclose($socket);
        }
        return true;
      }
      Attention, il s'agit d'une version basique, sans gestion des codes de retour du serveur SMTP. C'est juste pour tester tes paramètres SMTP.
    • Exemple d'utilisation, mode texte, sans header.
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      $to     = 'destinataire@autre_host.fr';
      $sujet  = 'sujet de test';
      $msg    = 'Hello, ceci est un test';
       
      if (monMail($to, $sujet, $msg)){
        echo 'Mail envoyé<br />';
      }else{
        echo 'Echec de connexion<br />';
      }
    :q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
    :quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
    Jabber: ripat at im.apinc.org

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/03/2009, 19h21
  2. [Mail] Fonction mail en PHP
    Par rte304 dans le forum Langage
    Réponses: 1
    Dernier message: 11/04/2007, 22h02
  3. [Mail] Fonction Mail - Php Mysql
    Par pod1978 dans le forum Langage
    Réponses: 1
    Dernier message: 06/10/2006, 14h51
  4. Réponses: 13
    Dernier message: 03/07/2006, 12h16
  5. [Mail] Fonction mail php-bdd
    Par pod1978 dans le forum Langage
    Réponses: 3
    Dernier message: 31/05/2006, 17h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo