Page 1 sur 1

Problème d'affichage HTML après envoie de mail

Posté : 10 févr. 2009, 11:58
par murdok
Bonjour à tous,

j'ai un script qui permet d'envoyer un mail après récupération du message depuis un flash.
Tout marche super autant la version texte que la version HTML.
Seul souci sur un mac cela n'affiche que le titre et aucun contenu, page blanche!
Avez vous une petite idée vers quoi il faut que je prete attention?

merci

Posté : 10 févr. 2009, 12:21
par @rthur
Bonjour,

Comment envoies-tu ton e-mail (source PHP)?

Posté : 10 févr. 2009, 20:11
par murdok
Merci du retour voici 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 = str_replace('\\', '', $texte);
        $texte = nl2br($texte); // converti les retours  en <br />
        $texte = trim($texte); // élimine les '\n', '\r', '\t' etc
        return $texte;
}


//ini_set('sendmail_from', '[email protected]'); 
 
$erreurPHP="";

/*$_POST['sujet'] = 'formulaire Test';
$_POST['messageHtml'] = '<html> 
     <head> 
     <title>Titre</title> 
     </head> 
     <body>Test de message
	 <div align=center><img src="http://www.domaine.com/logo.jpg"/>Coût final après déduction du crédit d\'impôt</div>
	 </body> 
     </html>';
$_POST['messageText'] = "Salut ";
$_POST['expediteur'] = "nom";
$_POST['mailReponse'] = "[email protected]";*/



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']))$messageTexte = $_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($erreurPHP != "") echo utf8_encode("erreurPHP=".$erreurPHP);
else
{
	$expediteurmail = "[email protected]";
	$to = $mailReponse;
	$sujet = decoder($sujet);
	$expediteur = decoder($expediteur);
	$messageHtml = decoder($messageHtml);
	$messageTexte = utf8_decode($messageTexte);
	
	
	 //-----------------------------------------------
     //GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
     //-----------------------------------------------

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

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

     $headers = 'From: '.$expediteur.' <'.$expediteurmail.'>'."\n";
     $headers .= 'Return-Path: <'.$expediteurmail.'>'."\n";
     $headers .= 'MIME-Version: 1.0'."\n";
     $headers .= 'Content-Type: multipart/alternative; boundary="'.$frontiere.'"'."\n";
	 //$headers .= "Cci: [email protected]\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 .= $messageTexte."\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);
}
?>
[/code]

Posté : 12 févr. 2009, 17:48
par murdok
est ce une histoire de formatage html?

Posté : 12 févr. 2009, 20:07
par Victor BRITO
Il ne faut pas oublier que la plupart des clients mail et webmails désactivent les images par défaut. ;) Auquel cas, il faut être d'autant moins surpris de voir une page blanche que l'attribut alt n'est pas renseigné dans la balise IMG (donc, pas de texte alternatif à afficher à la place).

Posté : 13 févr. 2009, 00:52
par Invité
merci du retour mais la dans le cas c'est sur un client logiciel mac et il n'y pas que des images dans le contenu du texte mais également du texte!

Posté : 13 févr. 2009, 13:35
par Victor BRITO
merci du retour mais la dans le cas c'est sur un client logiciel mac
Lequel ?

Posté : 15 févr. 2009, 13:32
par Hywan
Hey :),

Oui, lequel ? Parce que dire que c'est sur Mac, ça ne veut rien dire …

Posté : 16 févr. 2009, 12:48
par murdok
c'est sur le client par défaut sur mac, je crois que c'est mail.

Posté : 16 févr. 2009, 16:57
par Victor BRITO
c'est sur le client par défaut sur mac, je crois que c'est mail.
En es-tu sûr ? Si c'est le cas, c'est bizarre car Apple Mail est un client mail plutôt respectueux des standards, qui affiche une page HTML conforme aux standards sans problème particulier (ce rapport en fait foi). :-k

Posté : 23 févr. 2009, 20:34
par murdok
bonjour

désolé de la réponse tardive mon client a mis du temps a répondre.
le client mail sur mac est bien "Mail"