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
Ensuite voici le code de la page traitement_contact.php
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!
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("'","'",$message);
$message = str_replace("’","'",$message);
//$message = str_replace(""",'"',$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
$message = str_replace("<","<",$message);
$message = str_replace(">",">",$message);
$message = str_replace("&","&",$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!