Jump to content

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


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

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

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

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

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

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

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

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

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
×
×
  • Create New...