Jump to content
Sign in to follow this  
xpatval

mail html et clients mail, aïe aïe aïe...

Rate this topic

Recommended Posts

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Si tu utilises un script PHP, cette fonction génère un mail qui s'affiche au format choisi par l'utilisateur.

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);
}

Share this post


Link to post
Share on other sites

Je m'en vais tester cela...

Que signifie, et à quoi sert cette ligne ?

$limite = "_parties_".md5 (uniqid (rand()));

xpatval

Share this post


Link to post
Share on other sites

Bonjour,

Pour ma newsletter, j'utilise ce Doctype :

<!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 :

<!--
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 :

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Que signifie, et à quoi sert cette ligne ?

$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")

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

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

Share this post


Link to post
Share on other sites
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).

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...