5568 sujets

Sémantique web et HTML

Bonjour,

Je suis en train de mettre en place une newsletter, mais j'ai des comportements différents en fonction des clients de messagerie.
Par exemple dans hotmail les résultat est le suivant :


<table width=3D"00&quot=3B" border=3D"1" cellpadding=3D"&gt=3B
			&lt=3Btr&gt=3B
				&lt=3Btd&gt=3B&lt=3Bimg src=3Dttp://www.site.fr/img_mailing/oli=
vier.jpg" height=3D"58">


le code source étant

<table width="900" border="0" cellspacing="0" cellpadding="0">
	<tr>
		<td><img src="'.$lien.'img_mailing/olivier.jpg" alt="Couleur Kémia by Babali" width="900" height="258" border="0"></td>


J'ai intégré en entête de la newsletter

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
</head>


Le header du message étant défini ainsi
	 
$headers .= "Mime-Version: 1.0\r\n";
$message .= "Content-Type: text/html; charset = \"iso-8859-1\"\r\n";
$message .= "Content-Transfer-Encoding: quoted-printable\r\n\r\n\r\n"; 


Savez vous pourquoi le code HTML est ré-interprété ?
J'ai fait des tests sous :
- Yahoo mail => pas de problème
- sous FF => pas de problème
- sous outlook => problème
- sous Gmail => problème

sous mac, le code HTML n'est ps du tout interprété et affiché tel quel. La newsletter incluant une partie TEXT, cette partie n'est pas utilisée.

Si vous avez quelques pistes de recherche, je suis preneur Smiley cligne

NB : je n'ai pas de ligne blanche dans le code original, elles apparaissent au copier/coller dans ce message
Modifié par Babali (10 Oct 2009 - 08:34)
En ce qui concerne le header, corrige-le comme suit :
$message .= "Content-Type: text/html; charset=iso-8859-1\r\n";

En plus de l'absence de lignes blanches, comme tu dis, vérifie aussi que ton code XHTML tel qu'il est envoyé ne comporte pas d'indentations ni, idéalement, de retours à la ligne.
J'ai fais la modification et je viens de refaire un test sous FF / IE6 et Safari j'arrive au même résultat :
Gmail formatage du tableau OK (mais le message arrive sans image et est considéré comme un spam)
Hotmail : formatage du tableau KO et pas d'image
Yahoo mail : formatage du tableau OK, image OK

Après analyse de la source Hotmail, je constate que le code ci-dessous
fichier_message_html = '<div align="center"><table width="900" border="1"  cellspacing="0" cellpadding="0">'

est interprété ainsi :
<div align="enter&quot;"><table width="00&quot;" bgcolor="FFFFFF&quot;" border="1" cellpadding="&gt;
	  &lt;tr&gt;
		&lt;td bordercolor=#ab4">

A priori Hotmail traduit "center" en "enter&quot;"
Dois je échapper les doubles quotes ? du style :
fichier_message_html = '<div align=\"center\">'
Ok, car en grande majorité les newsletters sur hotmail affiché sur Firefox ne marchent pas, elles sont optimisés pour IE.

D'où souvent l'apparition de lignes blanches verticales.
Ce n'est pas sous les navigateurs qu'il faut tester l'affichage des newsletters et autres courriels en HTML, mais sous les clients mail et webmails. Nuance. Smiley cligne
Mais qu'est-ce qu'un webmail? Smiley cligne


En tout cas bon courage, ce n'est jamais évident de débugger une newsletter Smiley ohwell

Pour ma part ce que j'ai retenu de mon expérience, c'est qu'il est bcp plus simple et surtout bcp plus rapide de passer par ImageReady qui te ponds un code bien oldschool, mais qui marche nickel!

Sinon je me contente de garder le contenu du body étant donné que bcp de clients mail ne prennent pas en compte le head.

Tchusss