8791 sujets

Développement web côté serveur, CMS

Bonsoir,

j'ai un énorme problème php et après beaucoup de tests et recherches je ne parviens toujours pas à la résoudre.
Ce week end en fouillant sur le net, j'ai suivi un tutoriel qui m'a permis de créer un fichierphp qui génère un mail depuis des données reçues d'un formulaire en flash. Une fois terminé, un mail de ocnfirmation doit être reçu par la personne qui l'a remplit.
Dans le code suivant, le mail arrive impeccablement, mis en forme comme je le souhaite. Cela dis, dans certains mail readers, le message apparait blanc... Je ne trouve aucune solution. Dans mon outlook tout arrive parfaitement, mais pas dans un client comme "mail" sur MacOs ou le mail arrive vide.

Pourriez vous m'aider svp ?

C'est un peu à double tranchant comme je ne suis pas du tout habitué à php, juste suivi un tutoriel sur mediabox en adaptant à mon cas.

Si quelqu'un pouvais m'aider avec le code ici bas, ce serait génial

Merci d'avance,


le code :

<?php
function decoder($texte){
        $texte = utf8_decode($texte); // converti en iso-8859-1
        $texte = stripslashes($texte); // élimine les anti-slashs d'échappement
        $texte = nl2br($texte); // converti les retours  en <br />
        $texte = trim($texte); // élimine les '\n', '\r', '\t' etc
        return $texte;
}
 
$erreurPHP="";
 /*
$_POST['sujet'] = 'formulaire Test';
$_POST['messageHtml'] = '<html><head><title>Un titre ici</title></head><body>Salut<br /> Rémi<br /><br />Bye</body></html>';
$_POST['messageText'] = "Salut  Rémi ";
$_POST['expediteur'] = "Rémi";
$_POST['mailReponse'] = "remi.gauthier@tiscali.fr";

*/
if(isset($_POST['sujet']))$sujet = $_POST['sujet'];
else $erreurPHP .= "Variable 'sujet' non transmise\n";
 
if(isset($_POST['messageHtml']))$messageHtml = $_POST['messageHtml'];
else $erreurPHP .= "Variable 'message' non transmise\n";

if(isset($_POST['messageText']))$messageText = $_POST['messageText'];
else $erreurPHP .= "Variable 'message' non transmise\n";
 
if(isset($_POST['expediteur']))$expediteur = $_POST['expediteur'];
else $erreurPHP .= "Variable 'expediteur' non transmise\n";
 
if(isset($_POST['mailReponse']))$mailReponse = $_POST['mailReponse'];
else $erreurPHP .= "Variable 'mailReponse' non transmise\n";

if(isset($_POST['recipient']))$mailReponse = $_POST['recipient'];
else $erreurPHP .= "Variable 'recipient' non transmise\n";

 
if($erreurPHP != "") echo utf8_encode("erreurPHP=".$erreurPHP);
else
{
	$to = decoder($recipient);
	$sujet = decoder($sujet);
	$expediteur = decoder($expediteur);
	$messagehtml = decoder($messageHtml);
	$messageText = utf8_decode($messageText);
	
	 //-----------------------------------------------
     //GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
     //-----------------------------------------------

     $frontiere = '-----=' . md5(uniqid(mt_rand()));

     //-----------------------------------------------
     //HEADERS DU MAIL
     //-----------------------------------------------

     $headers = 'From: '.$expediteur.' <'.$mailReponse.'>'."\n";
     $headers .= 'Return-Path: <'.$mailReponse.'>'."\n";
     $headers .= 'MIME-Version: 1.0'."\n";
     $headers .= 'Content-Type: multipart/alternative; boundary="'.$frontiere.'"'."\n";
	 $headers .= 'Content-Transfer-Encoding: 8bit';

     //-----------------------------------------------
     //MESSAGE TEXTE
     //-----------------------------------------------
     //$message = 'This is a multi-part message in MIME format'."\n\r";

     $message = '--'.$frontiere."\n";
     $message .= 'Content-Type: text/plain; charset=UTF-8'."\n";
     $message .= 'Content-Transfer-Encoding: 8bit'."\n\r\n\r";
     $message .= $messageText."\n";

     
	 //-----------------------------------------------
     //MESSAGE HTML
     //-----------------------------------------------
     $message .= '--'.$frontiere."\n";
     $message .= 'Content-Type: text/html; charset=UTF-8'."\n";
     $message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
     $message .= $messageHtml."\n\n";

     $message .= '--'.$frontiere."\n"; 

	$mail_OK = mail($to, $sujet, $message, $headers) ;
	
 
	if (!$mail_OK)
	{
		$erreurPHP .= "Problème lors de l'envoi du mail";
		
	}
	echo utf8_encode("erreurPHP=".$erreurPHP);
}
?>


kaochris