Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2525 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [Mail] Format encode d'un texte HTML

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Mail] Format encode d'un texte HTML

n°573915
Scoubidoo
In reblochon we trust
Posté le 23-11-2003 à 16:20:25  profilanswer
 

Je suis en train de concevoir une petit webmail spécialisé pour les adhérents d'un association.
Je me pose des question quant au format d'encodage de l'email à adopter. Mon email sera en HTML.
 
quoted-printable ou base64? sachant que base64 est plus simple pour moi à gérer j'ai juste à faire chunk_split(base64($msg)).
 
Quel est le meilleur, celui qui sera lu par le plus grand nombre de logiciel de messagerie?
 
Merci d'avance.

mood
Publicité
Posté le 23-11-2003 à 16:20:25  profilanswer
 

n°573974
antp
Super Administrateur
Champion des excuses bidons
Posté le 23-11-2003 à 18:25:57  profilanswer
 

Heu le base64 c'est juste pour les attachements, non ? Pour le contenu du mail tu mets juste le code HTML il me semble.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°573988
Scoubidoo
In reblochon we trust
Posté le 23-11-2003 à 18:43:22  profilanswer
 

base64 c'est pour les attachements en effet mais je viens de lire qu'il était tout à fait possible d'encoder de meme un message en html. En tout cas, Outlook arrive bien à le lire mais je sais pas ce que ça donne avec d'autres genre Eudora.
 
Envoyer le contenu en html ça marche mais je rencontre des problèmes de "tronquage de mail" avec de très gros mail.  
 
Je croyais que cela venait du fait qu'il fallait mettre des retours à la ligne (\n) le plus souvent possible mais meme en le faisant, mon email est souvent tronqué ce qui m'énerve.
 
Je me suis dit que c'est parce que le message devait être encodé soit en quoted-printable ou en base64.
Pour quoted-printable ça consiste à remplacer ts les caractères spéciaux par une représentation style =3D par ex mais c u peu galère comparé à base64.

n°574271
Kyle_Katar​n
Posté le 24-11-2003 à 00:12:13  profilanswer
 

Pour l'envoi de mails, j'ai développé K-ML. Si tu veux un truc tout fait avec le développeur dispo en cas de problèmes, ça peut être une solution.

n°574320
benou
Posté le 24-11-2003 à 08:47:07  profilanswer
 
n°574366
Scoubidoo
In reblochon we trust
Posté le 24-11-2003 à 10:22:40  profilanswer
 

Kyle_Katarn a écrit :

Pour l'envoi de mails, j'ai développé K-ML. Si tu veux un truc tout fait avec le développeur dispo en cas de problèmes, ça peut être une solution.


 
Merci mais je préfère faire mon propre mailer (un peu par fierté je l'avoue  :D ) car en fait, il ne s'agit pas d'un mailer normal mais qqch de spécifique et puis j'aime bien comprendre ce que je fais (niveau maintenance c plus simple pour moi).
 
Par contre, je suis preneur de tuyau pour les méthodes d'encodage de mail.  ;)

n°574377
Mr yvele
yvele n'est plus.
Posté le 24-11-2003 à 10:54:11  profilanswer
 

perso, moi j'ai fait ça...
(j'été jeune quand j'ai fait ça, alors pas de remarque sur le code hein! :o .. d'ailleur ça me fait penser qu'il faut que je la remasterise un jour.. [:meganne])
 

Code :
  1. //
  2. //Envoi un email en html, avec possibilité d'y attacher un fichier.
  3. //
  4. function send_mail($to, $sujet, $message, $from, $fichier = null, $typemime = null, $nom = null, $reply = null, $date = true)
  5. {
  6.  //Pour le type mime de l'attachement :
  7.  //
  8.  //pour un message :
  9.  // message/rfc822
  10.  // message/partial
  11.  // message/external-body
  12.  //Text :
  13.  // text/plain
  14.  // text/richtext
  15.  //Image :
  16.  // image/gif
  17.  // image/jpeg
  18.  //Audio :
  19.  // audio/basic
  20.  //Video :
  21.  // video/mpeg
  22.  //Application :
  23.  // application/octet-stream
  24.  // application/postscript
  25.  $reply  = $reply?$reply:$from;
  26.  $typemime = $typemime?$typemime:"image/jpeg";
  27.  $nom  = $nom?$nom:"fichier";
  28.  $date  = $date?date("l j F Y, G:i" ):"0 0 0 0, 0:0";
  29.  //génére un identifiant unique de 32 caractères (32 caractères je crois..) (voir nexen, arf)
  30.  $lim1 = "_parties_".md5(uniqid(rand()));
  31.  $lim2 = "_parties_".md5(uniqid(rand()));
  32.  //message en texte bidon pour les navigateurs qui n'acceptent pas le HTML
  33.  $texte_simple =
  34.  "This is a multi-part message in MIME format.\n\n".
  35.  "------=$lim1\n".
  36.  "Content-Type: multipart/alternative;\n".
  37.  "\tboundary=\"----=$lim2\"\n\n".
  38.  "------=$lim2\n".
  39.  "Content-Type: text/plain; \tcharset=\"US-ASCII\"\n".
  40.  "Content-Transfer-Encoding: quoted-printable\n\n".
  41.  strip_tags(eregi_replace("<br />", "\n",$message))."\n\n";
  42.  //message en html original
  43.  $texte_html =
  44.  "------=$lim2\n".
  45.  "Content-Type: text/html; charset=\"US-ASCII\"\n".
  46.  "Content-Transfer-Encoding: quoted-printeble\n\n".
  47.  $message."\n\n\n------=$lim2--\n";
  48.  //attachement du message
  49.  if($fichier)
  50.  {
  51.   $f   = fopen($fichier,"r" );
  52.   $contenu = fread($f,filesize($fichier));
  53.   fclose($f);
  54.   //formatte les données pour suivre la norme RFC 2045 (voir nexen aussi)
  55.   $contenu = chunk_split(base64_encode($contenu));
  56.   $attachement =
  57.   "------=$lim1\n".
  58.   "Content-Type: $typemime; name=\"$nom\"\n".
  59.   "Content-Transfer-Encoding: base64\n".
  60.   "Content-Disposition: attachment; filename=\"$nom\"\n\n$contenu\n\n\n------=$lim1\n";
  61.  }
  62.  else
  63.   $attachement = "";
  64.  //fin du message
  65.  $mail_mime =
  66.  "Date: $date\n".
  67.  "MIME-Version: 1.0\n".
  68.  "Content-Type: multipart/mixed;\n".
  69.  " boundary=\"----=$lim1\"\n\n";
  70.  return @mail($to,$sujet,$texte_simple.$texte_html.$attachement,"Reply-to: $reply\nFrom: $from\n".$mail_mime);
  71. }


 
 
en me basant principalement sur les type mime...
 
ici y a pas mal d'infos mais c'est un peu le foutoir :
 
http://www.cru.fr/JRES95/actes/tutoriaux/mime.html
 
 :)


---------------
yvele n'est plus.
n°574460
Scoubidoo
In reblochon we trust
Posté le 24-11-2003 à 11:50:56  profilanswer
 

Bizarre, j'ai fait comme ça mais je me retrouve des fois avec un mail tronqué (manque des lettres) comme si le mail était trop gros (pourtant ya quelques lignes).
 
Ah ou alors ça vient ptete du charset, moi j'ai mis le iso-8859 ou un truc comme ça (je l'ai pas en tete) mais ça parait bizarre.

n°574496
antp
Super Administrateur
Champion des excuses bidons
Posté le 24-11-2003 à 12:13:09  profilanswer
 

heu y a pas d'iso-8859
il y a iso-8859-1 à iso-8859-15
pour les caractères utilisés en français on utilise les variantes -1, -9 (ajoute le ?) et -15 (ajoute l'euro)
 
http://babel.alis.com:8080/codage/ [...] iso.fr.htm


Message édité par antp le 24-11-2003 à 12:20:53

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°574559
Scoubidoo
In reblochon we trust
Posté le 24-11-2003 à 13:46:38  profilanswer
 

c'est possible, j'ai pas le truc sous les yeux, c'est chez moi :D
Merci pour l'explication, ça me sera utile pout autre chose (support de l'euro par ex).

mood
Publicité
Posté le 24-11-2003 à 13:46:38  profilanswer
 

n°579244
Scoubidoo
In reblochon we trust
Posté le 30-11-2003 à 02:12:29  profilanswer
 

up! car je suis tjrs à la recherche de pourquoi mon mail avec pièce jointe est tronqué!

n°579445
T509
$job-&gt;GetJob(now)
Posté le 30-11-2003 à 15:33:28  profilanswer
 

Va voir la classe déjà toute développée PHPmailer  
 
http://phpmailer.sourceforge.net/
 
a+

n°646465
sakuraba
Posté le 18-02-2004 à 09:01:19  profilanswer
 

Mr yvele a écrit :

perso, moi j'ai fait ça...
(j'été jeune quand j'ai fait ça, alors pas de remarque sur le code hein! :o .. d'ailleur ça me fait penser qu'il faut que je la remasterise un jour.. [:meganne])
 

Code :
  1. //
  2. //Envoi un email en html, avec possibilité d'y attacher un fichier. //
  3. function send_mail($to, $sujet, $message, $from, $fichier = null, $typemime = null, $nom = null, $reply = null, $date = true)
  4. {
  5.  //Pour le type mime de l'attachement :
  6.  //
  7.  //pour un message :
  8.  // message/rfc822
  9.  // message/partial
  10.  // message/external-body
  11.  //Text :
  12.  // text/plain
  13.  // text/richtext
  14.  //Image :
  15.  // image/gif
  16.  // image/jpeg
  17.  //Audio :
  18.  // audio/basic
  19.  //Video :
  20.  // video/mpeg
  21.  //Application :
  22.  // application/octet-stream
  23.  // application/postscript
  24.  $reply  = $reply?$reply:$from;
  25.  $typemime = $typemime?$typemime:"image/jpeg";
  26.  $nom  = $nom?$nom:"fichier";
  27.  $date  = $date?date("l j F Y, G:i" ):"0 0 0 0, 0:0";
  28.  //génére un identifiant unique de 32 caractères (32 caractères je crois..) (voir nexen, arf)
  29.  $lim1 = "_parties_".md5(uniqid(rand()));
  30.  $lim2 = "_parties_".md5(uniqid(rand()));
  31.  //message en texte bidon pour les navigateurs qui n'acceptent pas le HTML
  32.  $texte_simple =
  33.  "This is a multi-part message in MIME format.\n\n".
  34.  "------=$lim1\n".
  35.  "Content-Type: multipart/alternative;\n".
  36.  "\tboundary=\"----=$lim2\"\n\n".
  37.  "------=$lim2\n".
  38.  "Content-Type: text/plain; \tcharset=\"US-ASCII\"\n".
  39.  "Content-Transfer-Encoding: quoted-printable\n\n".
  40.  strip_tags(eregi_replace("<br />", "\n",$message))."\n\n";
  41.  //message en html original
  42.  $texte_html =
  43.  "------=$lim2\n".
  44.  "Content-Type: text/html; charset=\"US-ASCII\"\n".
  45.  "Content-Transfer-Encoding: quoted-printeble\n\n".
  46.  $message."\n\n\n------=$lim2--\n";
  47.  //attachement du message
  48.  if($fichier)
  49.  {
  50.   $f   = fopen($fichier,"r" );
  51.   $contenu = fread($f,filesize($fichier));
  52.   fclose($f);
  53.   //formatte les données pour suivre la norme RFC 2045 (voir nexen aussi)
  54.   $contenu = chunk_split(base64_encode($contenu));
  55.   $attachement =
  56.   "------=$lim1\n".
  57.   "Content-Type: $typemime; name=\"$nom\"\n".
  58.   "Content-Transfer-Encoding: base64\n".
  59.   "Content-Disposition: attachment; filename=\"$nom\"\n\n$contenu\n\n\n------=$lim1\n";
  60.  }
  61.  else
  62.   $attachement = "";
  63.  //fin du message
  64.  $mail_mime =
  65.  "Date: $date\n".
  66.  "MIME-Version: 1.0\n".
  67.  "Content-Type: multipart/mixed;\n".
  68.  " boundary=\"----=$lim1\"\n\n";
  69.  return @mail($to,$sujet,$texte_simple.$texte_html.$attachement,"Reply-to: $reply\nFrom: $from\n".$mail_mime);
  70. }


 
 
en me basant principalement sur les type mime...
 
ici y a pas mal d'infos mais c'est un peu le foutoir :
 
http://www.cru.fr/JRES95/actes/tutoriaux/mime.html
 
 :)  


comment tu l attaches ton fichier ?  
merci d'avance


---------------
Newsletter RCZ : inscriptions compliquées ou réceptions tardives ? Mon blog la partage sans délai. C est ici que ça se passe : https://gravelparis.com/

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [Mail] Format encode d'un texte HTML

 

Sujets relatifs
[HTML] Problème de police[html / php] pb avec formulaire multiple dans un meme page ?
coment inserier une vidéo en HTML dans un tableau?Comment aligner un texte en bas d'un tableau?
[Javascript / HTML / Autre...] Un album photoFiltre DirectShow: écrire du texte sur une vidéo
mail html => bug tous les 1024 caractèresEnvoie de mail via .cmd .?
[planning en ligne] Peut-on faire ça en html ? 
Plus de sujets relatifs à : [Mail] Format encode d'un texte HTML


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR