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

  FORUM HardWare.fr
  Programmation
  PHP

  mail avec contenu texte brut + HTML

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

mail avec contenu texte brut + HTML

n°1467218
jokaritaff
Posté le 30-10-2006 à 09:48:15  profilanswer
 

bonjour
 
je dois envoyer des mails via une applications PHP
et il faudrait que le contenu soit en texte brut et en version HTML
 
je voudrais savoir comment je peux faire pour que une messagerie qui gère pas le HTML
lise automatiquement la version brut, et vice versa
 
ya des normes reconnues par les messageries  
par exemple  : la version HTML est dans un fichier texte avec un nom spécififique, et attaché au mail ?

mood
Publicité
Posté le 30-10-2006 à 09:48:15  profilanswer
 

n°1467237
FlorentG
Unité de Masse
Posté le 30-10-2006 à 10:35:52  profilanswer
 

Non, ils sont séparés par des boundary normaux, ils viennent tous comme ça dans le corps du mail en brut.

n°1467240
jokaritaff
Posté le 30-10-2006 à 10:43:31  profilanswer
 

ok merci
je viens de trouver un tuto qui a l'air de faire bien les choses :  
http://www.vulgarisation-informatique.com/mail.php
 
et un merci global, car j'ai constaté que c'est souvent toi qui répond a mes questions


Message édité par jokaritaff le 30-10-2006 à 10:44:54
n°1467243
FlorentG
Unité de Masse
Posté le 30-10-2006 à 10:45:48  profilanswer
 

Voilà, c'est exactement ça.
 
Et de rien, c'est mon métier ;)

n°1468347
Noisequik
Posté le 31-10-2006 à 16:51:42  profilanswer
 

Peut être pourrais-tu m'aider, je cherche désespérément à inclure des pièces jointes et de les inclure dans l'e-mail, mais cela ne marche pas.
 
J'ai pourtant suivi le tutoriel  
 
http://phpcodeur.net/articles/php/ [...] -embarques
 
et donner un identifiant unique à mes pièces jointes mais cela ne marche pas (sur Gmail par exemple)
 
C'est rageant car un simple mail en html depuis outlook express fonctionne bien !

n°1468534
phosphorel​oaded
Posté le 01-11-2006 à 01:08:12  profilanswer
 

C'est quoi comme pièce jointe pour Gmail? Pas un .exe ou une .dtd par hasard?


Message édité par phosphoreloaded le 01-11-2006 à 01:09:05
n°1468689
Noisequik
Posté le 01-11-2006 à 14:39:06  profilanswer
 

non je souhaite juste inclure des images jpg mais elles se mettent toujours à la fin de l'e-mail

n°1468698
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 01-11-2006 à 14:57:32  profilanswer
 

Pour include des images dans ton email, ne te prends pas la tête, fais les héberger et dans ton code HTML de l'email, tu mets <img src="http://monhebergement.com/monimage.jpg" alt..... />

n°1469055
jokaritaff
Posté le 02-11-2006 à 10:05:06  profilanswer
 

j'ai réussi a envoyer un mail avec texte brut  + html  + pieces jointes
Autant sous Outlook, Outlook express tout passe nickel
Autant sur des webmails comme celui de Free, le texte brut n'est pas affiché
et en piece jointe j'ai un fichier unnamed qui contient bien le texte en brut...mais j'aimerais qu'il affiche le contneu direct plutot que de passer par le fichier unnamed
 
-----------------------------------------
 
c bon j'ai résolu mon probleme. J'avais écrit le Contenet Transfert encoding avec 8 bits au lieu de 8 bit.
et yavé des tabulations qui étaient pas reconnues
 
--------------------------------------  
mon script d'envoi de mail se base sur PEAR Mail::Factory et permet donc d'envoyer :  
 
- du texte brut
- du texte html
- 1 ou n pieces jointes . par contre le Content-Type n'esty pas défini officiellement. Si vous voulez en mettre un vrai, ya le package PEAR Mail Mime.
- les mails sont tres bien gérés sur Outlook, outlook express et IMP
 
Si vous  avez des améliorations a apporter hésitez pas a les remonter
 
voici le code :

Code :
  1. include("Mail.php" );
  2. $eol = "\n";
  3. # File for Attachment
  4. # To Email Address
  5. $emailaddress= $objContact->getLbEmail();
  6. # Message Subject
  7. $emailsubject="Réponse à votre question sur ".$oThemeMsg->getLbThemeMsg();
  8. # Message Body
  9. $body= $objet->getTxtMessageHtml();
  10. $msg = "";
  11. # Common Headers
  12. $headers['From'] = 'lenom@lenom-france.org';
  13. $headers['Subject'] = $emailsubject;
  14. $headers["Date"] = date( "D, j M Y G:i:s O" );
  15. $headers["To"] = $objContact->getLbNom()." ".$objContact->getLbPrenom()." <".$objContact->getLbEmail().">";
  16. $headers["Reply-To"] = "noreply@lenom.fr";
  17. //$headers .= 'Reply-To: noreply@lenom.fr'.$eol;
  18. //$headers .= 'Return-Path: noreply@lenom.fr'.$eol;    // these two to set reply address
  19. $headers['Message-ID'] = "<".date(YmdHis)."lenom@".$_SERVER['SERVER_NAME'].">";
  20. $headers['X-Mailer'] = "PHP v".phpversion();          // These two to help avoid spam-filters
  21. # Boundry for marking the split & Multitype Headers
  22. $mime_boundary_texte="NextPart_001_".md5(time());
  23. $mime_boundary_PJ="NextPart_000_".md5(time());
  24. $headers['MIME-Version'] .= '1.0';
  25. //    if( $dir = @opendir($cible_dir)) {
  26. $headers['Content-Type'] .= "multipart/mixed;".$eol."\tboundary=\"----=_".$mime_boundary_PJ."\"";
  27. $msg .= "This is a multi-part message in MIME format".$eol.$eol;
  28. $msg .= "------=_".$mime_boundary_PJ.$eol;
  29. //    }
  30. $msg .= "Content-Type: multipart/alternative;".$eol."\tboundary=\"----=_".$mime_boundary_texte."\"".$eol.$eol.$eol;
  31. # Text Version
  32. $msg .= "------=_".$mime_boundary_texte.$eol;
  33. $msg .= "Content-Type: text/plain;".$eol."\tcharset=\"iso-8859-1\"".$eol;
  34. $msg .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
  35. $msg .= $eol.$emailsubject." :".$eol.$eol;
  36. $msg .= html_entity_decode($objet->getTxtMessage());
  37. $msg .= "\r\n\r\n-----"
  38.  ."\r\nPS : Vous ne pouvez pas répondre directement à ce message, pour y répondre, ou donner une note de satisfaction vous devez vous rendre à l'adresse suivante :"
  39.  . "\r\nhttp://".$_SERVER['HTTP_HOST']."/lenom/telethon.php?Page=Conversation_Contact&alea=" . $oConversation->getLbAlea()
  40.  ."\r\n----";
  41. $msg .= $eol.$eol;
  42. # HTML Version
  43. $msg .= "------=_".$mime_boundary_texte.$eol;
  44. $msg .= "Content-Type: text/html;".$eol."\tcharset=\"iso-8859-1\"".$eol;
  45. $msg .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
  46. $msg .='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'.$eol
  47. .'<html><head>'.$eol
  48. .'<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />'.$eol
  49. .'</head>'.$eol
  50. .'<body>'.$eol;
  51. $msg .= $emailsubject." :<br /><br />";
  52. $msg .= $body;
  53. $msg .= "<br /><br />-----"
  54.  ."\r\nPS : Vous ne pouvez pas répondre directement à ce message, pour y répondre vous devez cliquer sur ce lien :"
  55.  . "\r\n<a href=\"http://".$_SERVER['HTTP_HOST']."/page.php">Ici</a>"
  56.  ."\r\n----";
  57. $msg .= '</body>'.$eol
  58.    .'</html>'
  59.    .$eol.$eol;
  60. $msg .= "------=_".$mime_boundary_texte."--".$eol.$eol;
  61. if( $dir = @opendir($cible_dir)) {
  62. while( FALSE !== ($fich = readdir($dir)) ) {
  63.  if ($fich != "." && $fich != ".." && $fich != "CVS" ) {
  64.   $letter = $fich;
  65.   $content_type = substr($letter, strlen($letter)-3, strlen($letter));
  66.   $f_name=$cible_dir.$letter;    // use relative path OR ELSE big headaches. $letter is my file for attaching.
  67.   $handle=fopen($f_name, 'rb');
  68.   $f_contents=fread($handle, filesize($f_name));
  69.   $f_contents=chunk_split(base64_encode($f_contents));    //Encode The Data For Transition using base64_encode();
  70.   $f_type=filetype($f_name);
  71.   fclose($handle);
  72.   # Attachment
  73.   $msg .= "------=_".$mime_boundary_PJ.$eol;
  74.   $msg .= "Content-Type: application/$content_type; name=\"".$letter."\"".$eol;  // sometimes i have to send MS Word, use 'msword' instead of 'pdf'
  75.   $msg .= "Content-Transfer-Encoding: base64".$eol;
  76.   $msg .= "Content-Disposition: attachment; filename=\"".$letter."\"".$eol.$eol; // !! This line needs TWO end of lines !! IMPORTANT !!
  77.   $msg .= $f_contents.$eol.$eol;
  78.   # Setup for text OR html
  79.   //$msg .= "Content-Type: multipart/alternative".$eol;
  80.  }
  81. }
  82. closedir($dir);
  83. # Finished
  84. }
  85. $msg .= "------=_".$mime_boundary_PJ."--".$eol.$eol;  // finish with two eol's for better security. see Injection.
  86. #PREPARE MAIL
  87. //ini_set(sendmail_from,'noreply@lenom.fr');  // the INI lines are to force the From Address to be used !
  88. # SEND THE EMAIL 
  89. // envoi du mail au contact
  90. $params["host"] = 'smtp.domaine.fr';
  91. $params["port"] = '25';
  92. $params["auth"] = false;
  93. $params["username"] = '';
  94. $params["password"] = '';
  95. $mail_object = Mail::factory("smtp", $params);
  96. $mail_object->send( $emailaddress, $headers, $msg);


 


Message édité par jokaritaff le 02-11-2006 à 10:31:47
n°1469080
jokaritaff
Posté le 02-11-2006 à 10:32:54  profilanswer
 

$fich != "CVS"  
---> dans mon projet, je travaille avec un outil de CVS
Donc si vous travaillez pas avec ce type d'outil, ya pas besoin de mettre cette condition

mood
Publicité
Posté le 02-11-2006 à 10:32:54  profilanswer
 

n°1469301
Noisequik
Posté le 02-11-2006 à 15:14:52  profilanswer
 

The-Shadow a écrit :

Pour include des images dans ton email, ne te prends pas la tête, fais les héberger et dans ton code HTML de l'email, tu mets <img src="http://monhebergement.com/monimage.jpg" alt..... />


 
Je pensais faire ça au début mais autant certains webmail que outlook 2003 par exemple bloquant les images externes. D'où un impact bien moindre sur les clients !

n°1469747
FlorentG
Unité de Masse
Posté le 03-11-2006 à 10:06:10  profilanswer
 

Outlook bloque les images par défaut, mais peut les réafficher. D'où faire une page parfaitement accessible avec de beaux attributs alt sur les images [:dawa]

n°1469772
jokaritaff
Posté le 03-11-2006 à 10:39:55  profilanswer
 

A props d'accessiblité,  
il est par contre  malheureusement pas recommendé du tout de faire des mails en XHTML/CSS, car bien que la démarche soit bonne, la plupart des messageries ne le gèrent pas.
Toutefois je rejoins le propos de FlorentG sur l'accessiblité des attributs de balises HTML.


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

  mail avec contenu texte brut + HTML

 

Sujets relatifs
[HTML]Formulaire de contact.onMouseover : changement de texte
[c++] envoie d'un mail avec login et mot de passeAide .html + preview d'image dans des cadres
Présentation style powerpoint et contenu dynamique en réseau.[excel] Parcours d'une colonne et copie d'une partie du contenu
Probleme envoi mail htmlappel d'une fonction dans un lien html dans un code php
Inserer vide Flash / FLV via html 
Plus de sujets relatifs à : mail avec contenu texte brut + HTML


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