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

Eléphanteau du PHP | 39 Messages

10 févr. 2009, 11:58

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

10 févr. 2009, 12:21

Bonjour,

Comment envoies-tu ton e-mail (source PHP)?
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 39 Messages

10 févr. 2009, 20:11

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]

Eléphanteau du PHP | 39 Messages

12 févr. 2009, 17:48

est ce une histoire de formatage html?

Mammouth du PHP | 2937 Messages

12 févr. 2009, 20:07

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).

Invité
Invité n'ayant pas de compte PHPfrance

13 févr. 2009, 00:52

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!

Mammouth du PHP | 2937 Messages

13 févr. 2009, 13:35

merci du retour mais la dans le cas c'est sur un client logiciel mac
Lequel ?

ViPHP
ViPHP | 4674 Messages

15 févr. 2009, 13:32

Hey :),

Oui, lequel ? Parce que dire que c'est sur Mac, ça ne veut rien dire …
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphanteau du PHP | 39 Messages

16 févr. 2009, 12:48

c'est sur le client par défaut sur mac, je crois que c'est mail.

Mammouth du PHP | 2937 Messages

16 févr. 2009, 16:57

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

Eléphanteau du PHP | 39 Messages

23 févr. 2009, 20:34

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"