Bonjour à tous.
Je cherche depuis 5 jours, j'ai visité une tonne sites et de forums. J'ai vérifié de nombreuses fois tous les points mentionnés. Que ce soit avec yahoo/Hotmail/gmail ou Windows mail(avec mon serveur) . J'ai tout essayé 1.000 fois. Rien à faire.
Petit résumé:
Site en PHP 5.3.5, page index + include.
Formulaire de contact avec captcha + mail()sur une seule page
Je récupère le $_POST['message'] venant de text area pour envoyer le contenu du message.
Le plus incompréhensible c'est qu'il y a 5/6 jours le message s'affichait correctement
Voici le code du mail:
Merci beaucoup.
Je cherche depuis 5 jours, j'ai visité une tonne sites et de forums. J'ai vérifié de nombreuses fois tous les points mentionnés. Que ce soit avec yahoo/Hotmail/gmail ou Windows mail(avec mon serveur) . J'ai tout essayé 1.000 fois. Rien à faire.
Petit résumé:
Site en PHP 5.3.5, page index + include.
Formulaire de contact avec captcha + mail()sur une seule page
Je récupère le $_POST['message'] venant de text area pour envoyer le contenu du message.
//j'ai vérifié un par un tous les scripts, ils sont bien tous encodés en UTF-8
la balise <meta http-equiv="content-type" content="text/html; charset=utf-8" /> est bien à sa place dans le <head>
j'ai mis header('Content-type: text/html; charset=UTF-8'); sur la page index ( MAIS çA NE CHANGE RIEN)
//j'ai vérifié le type d'encodage des navigateurs ainsi que de Windows Mail.
Le plus incompréhensible c'est qu'il y a 5/6 jours le message s'affichait correctement
Voici le code du mail:
if (isset($_POST['mail']))
{
// + diverses vérifications
$mail = 'moi@yahoo.fr'; // Déclaration des l'adresses de destination.
$mail2 = 'webmaster@monsite.com';
$mail3 = 'moi@hotmail.com';
$mail4 = 'moi@gmail.com';
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui rencontrent des bogues.
{ $passage_ligne = "\r\n"; }
else
{ $passage_ligne = "\n"; }
//=====DECLARATION DES MESSAGES AU FORMAT HTML
$message_html = "<html><head></head><body>'".$_POST['message']."'<body><html>";//$message_html
//==========
//=====CREATION DE LA BOUNDARY
$boundary = "-----=".sha1(rand());
//==========
//=====DEFINITION DU SUJET.
$sujet = "charset=\"UTF-8\"";
$sujet = $_POST['titre'];
//=========
//=====CREATION DU HEADER de l'e-mail.
$sender = $_POST['sender_name'];
$sendername = '=?UTF-8?B?'.base64_encode($sender).'?=';
$header = "From: \"'".$sendername."'\"<".$_POST['sender_email'].">".$passage_ligne;
$header.= "Reply-to: \"'".$sendername."'\"<".$_POST['sender_email'].">".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-type: text/html; charset=utf-8;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
//==========
//==========
$message.= $passage_ligne."--".$boundary.$passage_ligne;
//=====AJOUT DU MESSAGE AU FORMAT HTML
$message = "Content-Type: text/html; charset=\"UTF-8\"".$passage_ligne;
$message = "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message = "<u>From</u>: ".$_POST['sender_name']." : (" .$_POST['sender_email'].").".$passage_ligne;//= dans le corps de l'e-mail
$message.= $passage_ligne."<br/><br/>".$message_html.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//==========
//=====Envoi de l'e-mail.
mail($mail,'=?UTF-8?B?'.base64_encode($sujet).'?=',stripslashes($message),$header);
mail($mail2,'=?UTF-8?B?'.base64_encode($sujet).'?=',stripslashes($message),$header);
mail($mail3,'=?UTF-8?B?'.base64_encode($sujet).'?=',stripslashes($message),$header);
mail($mail4,'=?UTF-8?B?'.base64_encode($sujet).'?=',stripslashes($message),$header);
//==========
// + Formulaire ect ...
?>
Merci beaucoup.