Voila je rencontre un petit problème avec mon code.

Je cherche à relier les formulaires de contact de la page contact de mon site à mon adresse email de telle sorte que je reçoive directement tous les messages postés par mes clients directement dans ma boîte email.
J'ai élaboré à cet effet deux pages: la page contact.php et la page traitement_contact.php dont les codes suivent ci-dessous:

Page contact.php

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="utf-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <meta name="viewport" content="width=device-width, initial-scale=1">

   <div class="row">
    <!-- contact form -->
    <form action="traitement_contact.php" method="post" class="tm-contact-form">
     <div class="col-lg-6 col-md-6 tm-contact-form-input">
      <div class="form-group">
       <input type="text" name="nom" class="form-control" placeholder="NOM" />
      </div>
      <div class="form-group">
       <input type="email" name="email" class="form-control" placeholder="EMAIL" />
      </div>
      <div class="form-group">
       <input type="text"  name="objet" class="form-control" placeholder="OBJET" />
      </div>
      <div class="form-group">
       <textarea name="message" class="form-control" rows="6" placeholder="MESSAGE"></textarea>
      </div>
      <div class="form-group">
       <button class="tm-submit-btn" type="submit" name="envoyer">Envoyer</button> 
      </div>               
     </div>
    </form>
   </div>   
  </div>
 </section> 
</body>
</html>


Ensuite voici le code de la page traitement_contact.php

<?php
/*
    ********************************************************************************************
    CONFIGURATION
    ********************************************************************************************
*/
//<pre class="code inline inline-code" data-mode="php">mail($email_destinataire, $objet, $message, $headers)</pre>
 //a réussi, le mail a été accepté pour livraison.
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule   dgmictp@yahoo.fr
$destinataire = 'adresse1@yahoo.fr, adresse2@gmail.com';

// copie ? (envoie une copie au visiteur)
$copie = 'oui'; // 'oui' ou 'non'

// Messages de confirmation du mail
$message_envoye = "Votre message nous est bien parvenu !";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

// Messages d'erreur du formulaire
$message_erreur_formulaire = "Vous devez d'abord <a href=\"contact.php\">envoyer le formulaire</a>.";
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

/*
    ********************************************************************************************
    FIN DE LA CONFIGURATION
    ********************************************************************************************
*/

// on teste si le formulaire a été soumis
if (!isset($_POST['envoyer']))
{
    // formulaire non envoyé
    echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
    /*
     * cette fonction sert à nettoyer et enregistrer un texte
     */
    function Rec($text)
    {
        $text = htmlspecialchars(trim($text), ENT_QUOTES);
        if (1 === get_magic_quotes_gpc())
        {
            $text = stripslashes($text);
        }

        $text = nl2br($text);
        return $text;
    };

    /*
     * Cette fonction sert à vérifier la syntaxe d'un email
     */
    function IsEmail($email)
    {
        $value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(? [decu]? [decu]?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(? [decu]?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
        return (($value === 0) || ($value === false)) ? false : true;
    }

    // formulaire envoyé, on récupère tous les champs.
    $nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';
    $email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
    $objet   = (isset($_POST['objet']))   ? Rec($_POST['objet'])   : '';
    $message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';

    // On va vérifier les variables et l'email ...
    $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré

    if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
    {
        // les 4 variables sont remplies, on génère puis envoie le mail
        $headers  = 'MIME-Version: 1.0' . "\r\n";
        $headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" .
                'Reply-To:'.$email. "\r\n" .
                'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" .
                'Content-Disposition: inline'. "\r\n" .
                'Content-Transfer-Encoding: 7bit'." \r\n" .
                'X-Mailer:PHP/'.phpversion();

        // envoyer une copie au visiteur ?
        if ($copie == 'oui')
        {
            $cible = $destinataire.';'.$email;
        }
        else
        {
            $cible = $destinataire;
        };

        // Remplacement de certains caractères spéciaux
        $message = str_replace("&#039;","'",$message);
        $message = str_replace("&#8217;","'",$message);
        //$message = str_replace("&quot;",'"',$message);
        $message = str_replace('<br>','',$message);
        $message = str_replace('<br />','',$message);
        $message = str_replace("&lt;","<",$message);
        $message = str_replace("&gt;",">",$message);
        $message = str_replace("&amp;","&",$message);

        // Envoi du mail
        $num_emails = 0;
        $tmp = explode(';', $cible);
        foreach($tmp as $email_destinataire)
        {
            if (mail($email_destinataire, $objet, $message, $headers))
                $num_emails++;
        }

        if ((($copie == 'oui') && ($num_emails == 2)) || (($copie == 'non') && ($num_emails == 1)))
        {
            echo '<p>'.$message_envoye.'</p>';
        }
        else
        {
            echo '<p>'.$message_non_envoye.'</p>';
        };
    }
    else
    {
        // une des 3 variables (ou plus) est vide ...
        echo '<p>'.$message_formulaire_invalide.' <a href="contact.php">Retour au formulaire</a></p>'."\n";
    };
}; // fin du if (!isset($_POST['envoi']))
?>


Je veux recevoir directement tous les messages postés par mes clients ou visiteurs directement dans la boîte de reception de mon mail et non dans le dossier spam.

Veuillez m'aider pour la correction du code ou si vous pouvez me donner un bon code qui marche très bien et qui n'envois pas les messages dans le dossier spam, car celui m'envoyait les messages dans le dossier spam lorsqu'il marchait et puis il prenait en compte seulemnt les adresses emails avec l'extension @gmail.com et non @yahoo.fr et autres.
Merci d'avance pour votre aide!
Modérateur
Yep c'est cela,

en plus de la remarque de mathieu très pertinente sur filter_var, c'est ici que se trouve le problème:


$headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" .

Pour ne pas te faire anti-spammer,il faut éviter d'usurper des identités.

Le mail d'expédition doit être le tiens. Enfin une adresse configurée pour l'envoi sur ce serveur. Si tu es chez un hébergeur mutualisé renseigne-toi auprès de lui à ce propos (mais généralement une adresse @mondomaine ça passera), sinon il faut gérer cela dans les DNS.

Gmail est assez (trop?) laxiste sur ce point et il est donc facile d'usurper une identité gmail.