Version complète: sur le forum Webmaster Hub : mail html et clients mail, aïe aïe aïe...
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > (X)HTML et CSS
xpatval
Bonjour,

A chaque jour suffisant sa peine, je viens de découvrir les joies d'envois de mail html, avec test sur deux "clients mail" différents, (outlook express et opera).

Le résultat est à la hauteur de ma surprise. :yoot: :yoot: :yoot:

Quant outlook express affiche à peu près correctement un mail html dans lequel sont définies quelques règles css (à peu près, car le background-image d'un <td style="..."> ne fonctionne pas), opera me la joue double-balises <html><body> et donc, un résultat proche..de l'ohio

Avez-vous eu une expérience identique, (je sais qu'avec hotmail, c'est une galère), et comment avez-vous résolu ce problème de doubles balises ?

merci,

xpatval
Kimberlyclarko
Tu trouveras une série de conseils sur cette discussion :
http://www.webmaster-hub.com/index.php?showtopic=4187
mieux vaut éviter les CSS dans un mail (le marché n'est pas encore prêt wink.gif)
xpatval
Merci de ta réponse.

J'avais lu la discussion, et surtout été voir l'article sur pompage.net, concernant l'utilisation des css dans un mail.

Néanmoins, il semble effectivement difficile d'harmoniser un mail html en fonction des spécificités de chaque client mail...

Bref, du travail en perspective...

merci,

xpatval
pierredureau
Beaucoup de gens (et ce chiffre augmente à cause des configurations par défaut des clients et des failles de sécurité) ont le HTML désactivé dans leurs clients mail.
Tchesko
Si tu utilises un script PHP, cette fonction génère un mail qui s'affiche au format choisi par l'utilisateur.

CODE
function mail_html($destinataire, $sujet , $messtxt, $messhtml , $from)
{
    $limite = "_parties_".md5 (uniqid (rand()));

    $entete = "Reply-to: $from\n";
    $entete .= "From:$from\n";
    $entete .= "Date: ".date("l j F Y, G:i")."\n";
    $entete .= "MIME-Version: 1.0\n";
    $entete .= "Content-Type: multipart/alternative;\n";
    $entete .= " boundary=\"----=$limite\"\n\n";

//Le message en texte simple pour les navigateurs qui
//n'acceptent pas le HTML
    $texte_simple = "This is a multi-part message in MIME format.\n";
    $texte_simple .= "Ceci est un message au format MIME.\n";
    $texte_simple .= "------=$limite\n";
    $texte_simple .= "Content-Type: text/plain; charset=\"US-ASCII\"\n";
    $texte_simple .= "Content-Transfer-Encoding: 7bit\n\n";
    $texte_simple .= $messtxt;
    $texte_simple .= "\n\n";

//le message en html original
    $texte_html = "------=$limite\n";
    $texte_html .= "Content-Type: text/html; charset=\"US-ASCII\"\n";
    $texte_html .= "Content-Transfer-Encoding: 7bit\n\n";
    $texte_html .= $messhtml;
    $texte_html .= "\n\n\n------=$limite\n";

    return mail($destinataire, $sujet, $texte_simple.$texte_html, $entete);
}
xpatval
Je m'en vais tester cela...

Que signifie, et à quoi sert cette ligne ?
CODE
$limite = "_parties_".md5 (uniqid (rand()));


xpatval
Bob
Bonjour,

Pour ma newsletter, j'utilise ce Doctype :
CODE
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Tout en haut du code, je colle ce commentaire :
CODE
<!--
    SI VOUS NE VOYEZ PAS CETTE PAGE, COPIEZ CE LIEN DANS VOTRE NAVIGATEUR INTERNET :
    http://www.monsite.com/URInewsletter.htm
-->

Ca peut aider les utlisateurs qui désactivent le html dans leur client.

Et en entête du mail, je met ce paragraphe :
CODE
Pour afficher cette page, vous devez être connecté à internet.
Si cette page ne s'affiche pas correctement, cliquez ici.
Avec le lien qui pointe vers http://www.monsite.com/URInewsletter.htm
xpatval
>> Tchesko: bizarrement, je me retrouve avec un fichier .txt attaché avec le mail. Et un fichier vide. Pourquoi ?

>> Bob, comment as-tu résolu les problèmes de doublons de balises <html><body> etc. ?

xpatval
xpatval
Autre question concernant ce thème, quelqu'un a-t-il trouvé la solution pour afficher des images dans un mail html, avec le client mail opera ?

xpatval
Tchesko
CITATION(xpatval @ 05 Nov 2004, 09:00)
Que signifie, et à quoi sert cette ligne ?
CODE
$limite = "_parties_".md5 (uniqid (rand()));


La fonction envoie un mail multipart, il faut donc des delimiteurs entre ces parties.
Cette ligne construit une partie de ce déliminteur.(------=_partie_6565_123_657654")

CITATION
  >> Tchesko: bizarrement, je me retrouve avec un fichier .txt attaché avec le mail. Et un fichier vide. Pourquoi ?


Je pense que c'est un problème de définission d'entêtes...

CODE
$entete .= "MIME-Version: 1.0\n";
$entete .= "Content-Type: multipart/alternative;\n";
.....
$texte_simple .= "Content-Type: text/plain; charset=\"US-ASCII\"\n";
.....
$texte_html .= "Content-Type: text/html; charset=\"US-ASCII\"\n";


Je vais voir ce que je trouve la dessus (je penses que cela vient de l'interpretation du client mail).

Mais tu peux déja jeter un oeil ici

Concernant les images, il est souhaitable d'insérer les adresses réelles de ces images (http://www.monsite.com/monrepertoiredimage/monimage.gif) plutot que les adresses relatives images elles meme(../monrep/monim.gif).

Pour info... cette discussion sort complètement du cadre de ce forum. Peut être qu'un des admin pourrait la replacer. smile.gif
xpatval
CITATION
Concernant les images, il est souhaitable d'insérer les adresses réelles de ces images


Toutes mes images sont en url absolues (ce pourquoi je posais la question pour Opera, et Opera seulement).


CITATION
Pour info... cette discussion sort complètement du cadre de ce forum


Pourtant, il me semble qu'un problème de css dans un mail html correpond à ce forum ?

Ns verrons bien.

xpatval
Findel
Article à lire chez les pompeurs :
http://pompage.net/pompe/cssemail/
xpatval
deja fait, Findel... smile.gif

xpatval
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.