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

  FORUM HardWare.fr
  Programmation
  PHP

  envoyer un mail en html

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

envoyer un mail en html

n°920463
attentio
Posté le 11-12-2004 à 15:48:06  profilanswer
 

bonjour,
j'ai quelques petites difficultés avec la fonction mail

Code :
  1. $message='<html>mon message<br>ne fonctionne pas trop</html>';
  2. mail($receveur,$message,$entete);


je voudrais envoyer un mail au format html, et sur mon adresse perso hotmail pas de probleme mais apparemment si je l'envoie a quelqu'un qui n'est pas chez hotmail (il semble le regarder sur outlook)il recoit le message :
<html>mon message<br>ne fonctionne pas trop</html>
 
et non pas :
mon message
ne fonctionne pas trop
 
comment dois je m'y prendre.
 
merci de votre aide


Message édité par attentio le 24-03-2005 à 20:47:39

---------------
L'ordinateur a de la mémoire mais aucun souvenir ...
mood
Publicité
Posté le 11-12-2004 à 15:48:06  profilanswer
 

n°920495
xelad
Posté le 11-12-2004 à 16:48:32  profilanswer
 

Code :
  1. mail($to,$subject,$text,$headers)


essaye avec ces entetes :
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: truc@truc.fr";

n°920514
naceroth
Posté le 11-12-2004 à 17:32:45  profilanswer
 

attentio a écrit :


je voudrais envoyer un mail au format html, et sur mon adresse perso hotmail pas de probleme mais apparemment si je l'envoie a quelqu'un qui n'est pas chez hotmail (il semble le regarder sur outlook)il recoit le message :
<html>mon message<br>ne fonctionne pas trop</html>


 
Je remercie tous les saints du paradis de ce fait, mais tu ne peux pas forcer un utilisateur à lire un mail au format html s'il en a décidé autrement. La plupart des clients mail intègre une fonction affichant au format texte un mail quelque soit le format d'origine prévu...
 
(petit détail à prendre en compte)

n°920519
xelad
Posté le 11-12-2004 à 17:43:52  profilanswer
 

effectivement, tu ne peux pas le forcer, mais si à l'origine ton gestionnaire mail ne sait pas que c'est du html je ne vois pas comment il pourrait le voir tout seul d'où l'interet de le préciser le format en entete... t'as essayé au moins ??
 
(pour ceux qui diraient qu'il le detecte grâce aux balises <html></html> peuvent s'abstenir!...)


Message édité par xelad le 11-12-2004 à 17:47:53
n°920537
attentio
Posté le 11-12-2004 à 18:01:21  profilanswer
 

dans mon entete, j'ai mis ceci :

Code :
  1. $entete  = "MIME-Version: 1.0\r\n";
  2. $entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
  3. $entete="From: contact@monsite.com <monsite@60gp.ovh.net>\n";
  4. $entete.="Reply-to: contact@monsite.com ";


 
mais ca n'as pas l'air de marcher !!!!
 
merci de votre aide

n°920539
xelad
Posté le 11-12-2004 à 18:07:59  profilanswer
 

oublie pas la concaténation ligne 3, et le passage à la ligne... :

Code :
  1. $entete  = "MIME-Version: 1.0\r\n"; 
  2. $entete .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
  3. $entete .= "From: contact@monsite.com <monsite@60gp.ovh.net>\r\n"; 
  4. $entete .= "Reply-to: contact@monsite.com \n";


Message édité par xelad le 11-12-2004 à 18:12:04
n°920542
attentio
Posté le 11-12-2004 à 18:14:43  profilanswer
 

ca doit pas venir de la , parce que avant mon entete etait :

Code :
  1. $entete .= "From: contact@monsite.com <monsite@60gp.ovh.net>\r\n"; 
  2. $entete .= "Reply-to: contact@monsite.com \n";


et le mail s'envoyait quand meme.
maintant, je recois bien le mail, mais toujours sans la prise en compte des balises html
 
merci de ton aide

n°920783
Xav_
The only one...
Posté le 12-12-2004 à 04:43:56  profilanswer
 

pour l'envoi de mail(style newsletter) il est vrai qu'il est préférable d'utliser le retour chariot php "/n" que celui du html "<br>" sinon j'ai galéré ausii sur ce genre de truc :(


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°921007
attentio
Posté le 12-12-2004 à 14:43:21  profilanswer
 

ca semble marcher maintenant !
mais j'ai encore un soucis, si la personne qui a recu le mail me le renvoi alors il ecrit:
 
votre commande n°93 à  bien été enregistrée  
 
a la place de :
 
votre commande n° 93 à bien été enregistrée
 
etrange, non?
 

n°921077
naceroth
Posté le 12-12-2004 à 17:30:50  profilanswer
 

Vive le Character Coding :D

mood
Publicité
Posté le 12-12-2004 à 17:30:50  profilanswer
 

n°921631
attentio
Posté le 13-12-2004 à 10:39:53  profilanswer
 

mais  c'est quoi donc  :??:

n°1209622
Noisequik
Posté le 28-09-2005 à 11:28:22  profilanswer
 

est-ce possible que l'envoi de mail en html ne foctionne pas sous certaines versions de PHP, parce que sur un de mes hébergements cela fonctionne bien, mais là, impossible d'envoyer quoique ce soit en html
 
Seul Outlook le lis correctement...

n°1209634
omega2
Posté le 28-09-2005 à 11:36:29  profilanswer
 

Décidément, y en a qui vont les chercher loin les discutions alors qu'on a eu les même récement. ;)
 
Si ton mail n'est lisible que sous otulook, c'est que le html de ton mail est merdique, donc retour à la case html.

n°1209639
Noisequik
Posté le 28-09-2005 à 11:44:15  profilanswer
 

je mets juste <h1>texte</h1> !!!!

n°1209645
FlorentG
Posté le 28-09-2005 à 11:52:35  profilanswer
 

C'est une histoire d'headers, encore une fois [:spamafote]

n°1209647
shakpana
des fois, j'me demande ...
Posté le 28-09-2005 à 11:53:30  profilanswer
 

te la fait à pas cher celle là  :)  
> http://fr.php.net/manual/fr/function.mail.php

Code :
  1. $headers  = 'MIME-Version: 1.0' . "\\r\\n";
  2. $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\\r\\n";


et le texte du message doit être un doc html
après penches-toi donc sur MIME, c'est génial pour la back compat. envoyer du html et du text, et pour envoyer des P.J.

Code :
  1. <html>
  2. <head>
  3. <title></title>
  4. </head>
  5. <body>
  6. </body>
  7. </html>


Message édité par shakpana le 28-09-2005 à 11:54:09
n°1209653
Noisequik
Posté le 28-09-2005 à 11:58:17  profilanswer
 

Justement mon code fonctionne sous php 4.3.11 mais pas sous php 4.3.2 mais je pense qu'il s'agite plus un problème de config que de version.
 
Mon code :
 
$headers  = 'MIME-Version: 1.0' . " \r\n";
     $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: Oncle sam <onclesam@example.com>' . "\r\n";
 
 mail('moi@chezmoi.ch', 'essai', '<html><body><h1>Hello</h1></body></html>', $headers);


Message édité par Noisequik le 28-09-2005 à 12:02:17
n°1209659
shakpana
des fois, j'me demande ...
Posté le 28-09-2005 à 12:00:31  profilanswer
 

tu peux être plus explicite sur le marche pas ?
- les mails partent
- ne sont pas interpreter pareil par le même lecteur de courrier
c'est ça ?
 
ce qui serait pas mal,en ce cas c'est de comparer la source des 2 messages ...

n°1209676
Noisequik
Posté le 28-09-2005 à 12:07:43  profilanswer
 

celui qui marche
 
                                                                                                                                                                                                                                                               

Citation :

X-Gmail-Received: ec6ea0447b773d5e880ede7dc6cdbf3604567a30
Delivered-To: frederic.leuba@gmail.com
Received: by 10.64.208.19 with SMTP id f19cs7835qbg;
        Wed, 28 Sep 2005 03:05:01 -0700 (PDT)
Received: by 10.70.110.17 with SMTP id i17mr3323591wxc;
        Wed, 28 Sep 2005 03:05:01 -0700 (PDT)
Return-Path: <>
Received: from mailserver.nexlink.net ([80.86.195.11])
        by mx.gmail.com with ESMTP id i39si96581wxd.2005.09.28.03.04.58;
        Wed, 28 Sep 2005 03:05:01 -0700 (PDT)
Received-SPF: neutral (gmail.com: 80.86.195.11 is neither permitted nor denied by best guess record for domain of mailserver.nexlink.net)
Received: from onyxtwo.ows.ch ([195.141.44.253])
        by mailserver.nexlink.net (Merak 8.0.3) with ESMTP id JEA74702
        for <frederic.leuba@antonietti-vesco.ch>; Wed, 28 Sep 2005 12:04:58 +0200
Received: (from f206980@localhost)
 by onyxtwo.ows.ch (8.11.6/8.11.6) id j8SA4vr11563;
 Wed, 28 Sep 2005 12:04:57 +0200
Date: Wed, 28 Sep 2005 12:04:57 +0200
Message-Id: <200509281004.j8SA4vr11563@onyxtwo.ows.ch>
To: frederic.leuba@antonietti-vesco.ch
Subject: Une nouvelle annonce a été postée depuis le site Fidele
MIME-Version: 1.0
Content-type: text/html; charset=iso-8859-1
From: Oncle sam <oncelsam@example.com>
X-Spam-Status: No, hits=4.45 required=8.00 tests=MIME_HTML_ONLY,SUBJ_ILLEGAL_CHARS,HTML_MESSAGE,NO_RDNS2
 version=3.0
X-Spam-Level: ****
X-Spam-Checker-Version: SpamAssassin 3.0 (1.3) on mailserver.nexlink.net
 
 
<html><body><h1>Hello</h1></body></html>


 
 
 
Celui qui ne va pas
 
                                                                                                                                                                                                                                                               

Citation :

X-Gmail-Received: a26a4e02b592d12d724067b2c83b32401bb2f9e1
Delivered-To: frederic.leuba@gmail.com
Received: by 10.64.208.19 with SMTP id f19cs7838qbg;
        Wed, 28 Sep 2005 03:05:05 -0700 (PDT)
Received: by 10.70.111.11 with SMTP id j11mr3229196wxc;
        Wed, 28 Sep 2005 03:05:04 -0700 (PDT)
Return-Path: <>
Received: from mailserver.nexlink.net ([80.86.195.11])
        by mx.gmail.com with ESMTP id i40si93891wxd.2005.09.28.03.05.04;
        Wed, 28 Sep 2005 03:05:04 -0700 (PDT)
Received-SPF: neutral (gmail.com: 80.86.195.11 is neither permitted nor denied by best guess record for domain of mailserver.nexlink.net)
Received: from p01.nexlink.net ([80.86.195.40])
        by mailserver.nexlink.net (Merak 8.0.3) with ESMTP (SSL) id JEA74702
        for <frederic.leuba@antonietti-vesco.ch>; Wed, 28 Sep 2005 12:05:03 +0200
Received: (qmail 31999 invoked by uid 48); 28 Sep 2005 10:05:03 -0000
Date: 28 Sep 2005 10:05:03 -0000
Message-ID: <20050928100503.31997.qmail@p01.nexlink.net>
To: frederic.leuba@antonietti-vesco.ch
Subject: Une nouvelle annonce a été postée depuis le site Fidele
MIME-Version: 1.0
 
Content-type: text/html; charset=iso-8859-1
 
From: Oncle sam <oncelsam@example.com>
 
 
<html><body><h1>Hello</h1></body></html>


 
Comme vous pouvez le voir, je fais les tests sous GMail.
 
Lorsque ce la marche j'ai le texte "Hello" en gras et dans le 2eme cas, j'ai tout ce texte qui apparait y compris les headers  
 
 
Content-type: text/html; charset=iso-8859-1
 
From: Oncle sam <oncelsam@example.com>
 
 
<html><body><h1>Hello</h1></body></html>


Message édité par Noisequik le 28-09-2005 à 12:11:45
n°1209687
shakpana
des fois, j'me demande ...
Posté le 28-09-2005 à 12:12:52  profilanswer
 

donc j'imagine que tu as compris d'où venais le problème ...
> les retours de ligne + ligne blanche ...
et - excuses-moi d'avance - ton code est 100% identique ?
si oui, ça devient louche ....

n°1209691
Noisequik
Posté le 28-09-2005 à 12:14:11  profilanswer
 

le code est identique sur les deux serveurs, c'est là que je ne comprends pas !!

n°1209692
shakpana
des fois, j'me demande ...
Posté le 28-09-2005 à 12:15:06  profilanswer
 

la spécification mail :
- les entêtes sont séparés par \r\n
- la fin des entêtes est indiqué par \r\n\r\n
tu vois poruquoi ça agit ainsi...

n°1209702
shakpana
des fois, j'me demande ...
Posté le 28-09-2005 à 12:18:25  profilanswer
 

Note: il faut que ton dernier header n'est pas de \r\n
 [:coch]  

n°1209704
Noisequik
Posté le 28-09-2005 à 12:18:50  profilanswer
 

Citation :

$headers  = 'MIME-Version: 1.0' . "\r\n";
     $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: Oncle sam <oncelsam@example.com>' . "\r\n\r\n";
 mail('moi@chezmoi.ch', 'Essai', '<html><body><h1>Hello</h1></body></html>', $headers);


 
Le code devrait être juste là non ?  :sweat:  
 
 
 

n°1209707
shakpana
des fois, j'me demande ...
Posté le 28-09-2005 à 12:20:34  profilanswer
 

Code :
  1. $headers  = 'MIME-Version: 1.0' . "\\r\\n";
  2. $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\\r\\n";
  3. // là pas de \\r\\n
  4. $headers .= 'From: Oncle sam <oncelsam@example.com>';
  5. mail('moi@chezmoi.ch', 'Essai', '<html><body><h1>Hello</h1></body></html>', $headers);


n°1209709
Noisequik
Posté le 28-09-2005 à 12:20:46  profilanswer
 

est-ce que tu arriverais à corriger les fautes sinon pour produire le code qui te semble correcte, cela serait vraiment sympa.
 
Je n'y arrive vraiment pas malgrès la doc...

 
Ok merci mais ca ne change rien  :sweat:  :sweat:  
 
en plus il me met "expéditeur inconnu" !!
 


Message édité par Noisequik le 28-09-2005 à 12:23:30
n°1209713
shakpana
des fois, j'me demande ...
Posté le 28-09-2005 à 12:24:32  profilanswer
 

tu as compris la modif ?
le dernier en-tête ne doit pas avoir de retour de ligne donc

Code :
  1. $headers .= 'From: Oncle sam <oncelsam@example.com>' . "\\r\\n";
  2. mail() ...
  3. // à remplacer par
  4. $headers .= 'From: Oncle sam <oncelsam@example.com>';
  5. mail() ...


Message édité par shakpana le 28-09-2005 à 12:25:08
n°1209715
Noisequik
Posté le 28-09-2005 à 12:25:48  profilanswer
 

oui j'ai fait cela et pas de changement...

n°1209716
Noisequik
Posté le 28-09-2005 à 12:28:20  profilanswer
 

Si tu as du temps a perdre je peux envoyer à ton adresse email le mail, pour voir si tu vois une différence...
 
Avec un troisième hébergement différent cela marche aussi !! A croire que je suis tombé sur le seul qui ne joue pas et je ne peux pas déménager le site !!!!  :fou:  :fou:


Message édité par Noisequik le 28-09-2005 à 12:30:50
n°1209719
shakpana
des fois, j'me demande ...
Posté le 28-09-2005 à 12:30:48  profilanswer
 

avant essaye de passer en \n seul au lieu de \r\n
j'ai une classe mail qui tourne à merveille sur linux et win32* en utilisant \n seul ...
 
*win32 avec un vrai serveur de mail, xmail

n°1209720
Noisequik
Posté le 28-09-2005 à 12:33:14  profilanswer
 

ah cela marche sans les \r !!!!!
Incroyable !! Merci 1000 fois ¨!!

 
Maintenant va savoir pourquoi??????


Message édité par Noisequik le 28-09-2005 à 12:34:24
n°1209723
shakpana
des fois, j'me demande ...
Posté le 28-09-2005 à 12:37:02  profilanswer
 

j'avais eu c'te galère avec les smtp sur win32 avant de switcher pour xmail ...
 
pourtant RFC822

3.1.2.  STRUCTURE OF HEADER FIELDS
 
        Once a field has been unfolded, it may be viewed as being com-
        posed of a field-name followed by a colon (":" ), followed by a
        field-body, and  terminated  by  a  carriage-return/line-feed.
        The  field-name must be composed of printable ASCII characters
        (i.e., characters that  have  values  between  33.  and  126.,
        decimal, except colon).  The field-body may be composed of any
        ASCII characters, except CR or LF.  (While CR and/or LF may be
        present  in the actual text, they are removed by the action of
        unfolding the field.)


mais bon ... php fait p.e. une translation ...
après enquête, c'est le serveur de mail qui choisit de ne pas gérer correctement les \r\n, alors que normallement un \n et/ou un \n doit faire l'affaire, php n'y est pour rien dans ce comportement ...


Message édité par shakpana le 28-09-2005 à 12:56:18
mood
Publicité
Posté le   profilanswer
 


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

  envoyer un mail en html

 

Sujets relatifs
comment envoyer un mail au format html en java?[PHP]Comment envoyer un mail HTML pour qu il soit lisible sur Free
Envoyer un mail au format HTMLEnvoyer un mail avec code HTML avec Mapi sous VB...
[html] Comment faire envoyer un questionnaire sur une adresse mail ?envoyer un mail PREFORMATE en HTML
envoyer un mail en html....[HTML : Formulaire] Comment envoyer un mail a une SEULE personne ?
[PHP] envoyer un mail au format HTML[MAIL HTML] Comment envoyer une page html sans etre 1 pièce jointe
Plus de sujets relatifs à : envoyer un mail en html


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