2010-09-21 3 views
0

J'utilise MAMP (environnement de développement de pile LAMP) pour envoyer des emails en utilisant PHP.php formaté html apparaît dans Yahoo mail mais pas gmail

Le code est ci-dessous:

$out_message = ' 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>You have requested an appointment with the Smile Zone</title> 
</head> 

<body> 
<p style="font-family:Arial, Helvetica, sans-serif;"><strong>Dear '.$details_name.'</strong></p> 
<p style="font-family:Arial, Helvetica, sans-serif">You have requested an appointment!</p> 
<p style="padding:10px;"><strong>Please note that this appointment is currently unconfirmed</strong></p> 
</body> 
</html> 
'; 

//now for the client side: 
$out_to = '[email protected]'; 
$out_subject = 'My Subject'; 

// To send HTML mail, the Content-type header must be set 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

// Additional headers 
$headers .= "To: John <[email protected]> \r\n"; 
$headers .= 'From: The Smile Zone <[email protected]>' . "\r\n"; 

$success2 = mail($out_to, $out_subject, $out_message, $headers); 

Lorsque j'envoie cet e-mail et vue dans Apple Mail, il apparaît comme il se doit, mais dans GMail, dans le navigateur tout ce que je reçois est la source première.

Pourquoi est-ce?

Répondre

2

Vous avez charsets contradictoires:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

et:

$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

Modifiez-les pour qu'ils correspondent.

0

Enlevez ces balises

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>You have requested an appointment with the Smile Zone</title> 
</head> 

<body> 

Certains utilisent des liens complets

Utilisez une bibliothèque standard comme

  • Zend_Mail
  • poire-mail
+0

En outre, une référence pratique pour le formatage: http://www.campaignmonitor.com/downloads/documents-tools/Campaign_Monitor_Guide_to_CSS_Support_in_Email_27_Aug_2009.pdf Heureusement, sur celui-ci, il ne semble pas y avoir de problèmes de compatibilité, mais c'est un excellent ressource pour la prochaine fois. – bpeterson76

0

Gmail est beaucoup moins indulgent pour le formatage de vos e-mails que les autres clients Web. Vous devrez vous conformer au RFC2822. Je suppose que la fonction en PHP ne crée pas de messages conformes à cette RFC pour les messages en plusieurs parties. (C'est-à-dire, les messages avec un texte et une partie HTML.) Selon la documentation pour mail il est préférable d'utiliser PEAR::Mail_Mime.

Questions connexes