Bonjour à tous,

j'ai un formulaire de contact en PHP, mais celui-ci me signale qu'il envois bien le mail, mais je ne le reçois pas. J'ai déjà fait plusieurs vérifications, mais rien à faire je ne trouve pas....

Pouvez-vous m'aider ? Ca serais sympas...

Voici le code :

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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<?php
    define( 'MAIL_TO'           ,"monadresse@mail.be"   );  //ajouter votre courriel
    define( 'MAIL_NOM'          ,'Votre Nom'                ); // valeur par défaut
    define( 'MAIL_PRENOM'       ,'Votre Pr&eacute;nom'      ); // valeur par défaut
    define( 'MAIL_FROM'         ,'Votre E-mail'             ); // valeur par défaut
    define( 'MAIL_OBJECT'       ,'Objet du message'         ); // valeur par défaut
    define( 'MAIL_MESSAGE'      ,'Votre message'            ); // valeur par défaut
 
    $mailSent = false; // drapeau qui aiguille l'affichage du formulaire OU du récapitulatif
    $errors = array(); // tableau des erreurs de saisie
    $mailto = MAIL_TO;
 
    if( filter_has_var( INPUT_POST, 'send' ) ) // le formulaire a été soumis avec le bouton [Envoyer]
    {
        $from = filter_input( INPUT_POST, 'from', FILTER_VALIDATE_EMAIL );
        if( $from === NULL || $from === MAIL_FROM ) // si le courriel fourni est vide OU égale à la valeur par défaut
        {
            $errors[] = 'Vous devez renseigner votre adresse de courrier &eacute;lectronique.';
        }
        elseif( $from === false ) // si le courriel fourni n'est pas valide
        {
            $errors[] = 'L\'adresse de courrier &eacute;lectronique n\'est pas valide.';
            $from = filter_input( INPUT_POST, 'from', FILTER_SANITIZE_EMAIL );
        }
 
        $object = filter_input( INPUT_POST, 'object', FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_HIGH | FILTER_FLAG_ENCODE_LOW );
        if( $object === NULL OR $object === false OR empty( $object ) OR $object === MAIL_OBJECT ) // si l'objet fourni est vide, invalide ou égale à la valeur par défaut
        {
            $errors[] = 'Vous devez renseigner l\'objet.';
        }
 
        /*     pas besoin de nettoyer le message. 
        /    http://www.phpsecure.info/v2/article/MailHeadersInject.php
        /    Logiquement, les parties message, To: et Subject: pourraient servir aussi à injecter quelque chose,     mais la fonction mail()
        /    filtre bien les deux dernières, et la première est le message, et à partir du moment où on a sauté une ligne dans l'envoi du mail,
        /    c'est considéré comme du texte; le message ne saurait donc rester qu'un message.*/
        $message = filter_input( INPUT_POST, 'message', FILTER_UNSAFE_RAW );
        if( $message === NULL OR $message === false OR empty( $message ) OR $message === MAIL_MESSAGE ) // si le message fourni est vide ou égale à la valeur par défaut
        {
            $errors[] = 'Vous devez &eacute;crire un message.';
        }
 
        if( count( $errors ) === 0 ) // si il n'y a pas d'erreurs
        {
            if( mail( MAIL_TO, $object, $message) ) // tentative d'envoi du message
            {
                $mailSent = true;
            }
            else // échec de l'envoi
            {
                $errors[] = 'Votre message n\'a pas &eacute;t&eacute; envoy&eacute;.';
            }
        }
    }
    else // le formulaire est affiché pour la première fois, avec les valeurs par défaut
    {
        $nom        = MAIL_NOM;
        $prenom     = MAIL_PRENOM;
        $from       = MAIL_FROM;
        $object     = MAIL_OBJECT;
        $message    = MAIL_MESSAGE;
    }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="fr" xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
        <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
        <meta http-equiv="content-language" content="fr" />
    </head>
    <body>
 
<?php
    if( $mailSent === true ) // si le message a bien été envoyé, on affiche le récapitulatif
    {
?>
        <p id="success">Votre message a bien &eacute;t&eacute; envoy&eacute;.</p>
<?php
    }
    else // le formulaire est affiché pour la première fois ou le formulaire a été soumis mais contenait des erreurs
    {
        if( count( $errors ) !== 0 )
        {
            echo( "\t\t<ul>\n" );
            foreach( $errors as $error )
            {
                echo( "\t\t\t<li>$error</li>\n" );
            }
            echo( "\t\t</ul>\n" );
        }
        /*else
        {
            echo( "\t\t<p id=\"welcome\"><em>Tous les champs sont obligatoires</em></p>\n" );
        }*/
?>
        <form id='contact' method="post" action="<?php echo( $_SERVER['REQUEST_URI'] ); ?>">
            <p>
                <label for="from">Nom</label>
                <input type="text" name="from" id="from" value="<?php echo( $nom ); ?>" /><br />
 
                <label for="from">Pr&eacute;nom</label>
                <input type="text" name="from" id="from" value="<?php echo( $prenom ); ?>" /><br />
 
 
                <label for="from">E-mail*</label>
                <input type="text" name="from" id="from" value="<?php echo( $from ); ?>" /><br />
 
                <label for="object">Objet*</label>
                <input type="text" name="object" id="object" value="<?php echo( $object ); ?>" /><br />
 
                <label for="message">Message*</label>
                <textarea name="message" id="message" rows="20" cols="80"><?php echo( $message ); ?></textarea>
            </p>
            <em>Les champs marqu&eacute; d'une * sont obligatoires</em>
            <p>
                <input class="boutton" type="reset" name="reset" value="Effacer" />
                <input class="boutton" type="submit" name="send" value="Envoyer" />
            </p>
        </form>
<?php
    }
?>
    </body>
</html>
Ah j'allais oublier, mon serveur est un serveur Gandi. Et le service mail est bien activé.

Merci d'avance à tous,

Mat