envoyer un mail en html - PHP - Programmation
Marsh Posté le 11-12-2004 à 16:48:32
Code :
|
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";
Marsh Posté le 11-12-2004 à 17:32:45
attentio a écrit : |
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)
Marsh Posté le 11-12-2004 à 17:43:52
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!...)
Marsh Posté le 11-12-2004 à 18:01:21
dans mon entete, j'ai mis ceci :
Code :
|
mais ca n'as pas l'air de marcher !!!!
merci de votre aide
Marsh Posté le 11-12-2004 à 18:07:59
oublie pas la concaténation ligne 3, et le passage à la ligne... :
Code :
|
Marsh Posté le 11-12-2004 à 18:14:43
ca doit pas venir de la , parce que avant mon entete etait :
Code :
|
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
Marsh Posté le 12-12-2004 à 04:43:56
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
Marsh Posté le 12-12-2004 à 14:43:21
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?
Marsh Posté le 28-09-2005 à 11:28:22
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...
Marsh Posté le 28-09-2005 à 11:36:29
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.
Marsh Posté le 28-09-2005 à 11:53:30
te la fait à pas cher celle là
> http://fr.php.net/manual/fr/function.mail.php
Code :
|
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 :
|
Marsh Posté le 28-09-2005 à 11:58:17
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);
Marsh Posté le 28-09-2005 à 12:00:31
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 ...
Marsh Posté le 28-09-2005 à 12:07:43
celui qui marche
Citation : X-Gmail-Received: ec6ea0447b773d5e880ede7dc6cdbf3604567a30 |
Celui qui ne va pas
Citation : X-Gmail-Received: a26a4e02b592d12d724067b2c83b32401bb2f9e1 |
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>
Marsh Posté le 28-09-2005 à 12:12:52
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 ....
Marsh Posté le 28-09-2005 à 12:14:11
le code est identique sur les deux serveurs, c'est là que je ne comprends pas !!
Marsh Posté le 28-09-2005 à 12:15:06
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...
Marsh Posté le 28-09-2005 à 12:18:50
Citation : $headers = 'MIME-Version: 1.0' . "\r\n"; |
Le code devrait être juste là non ?
Marsh Posté le 28-09-2005 à 12:20:34
Code :
|
Marsh Posté le 28-09-2005 à 12:20:46
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
en plus il me met "expéditeur inconnu" !!
Marsh Posté le 28-09-2005 à 12:24:32
tu as compris la modif ?
le dernier en-tête ne doit pas avoir de retour de ligne donc
Code :
|
Marsh Posté le 28-09-2005 à 12:28:20
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 !!!!
Marsh Posté le 28-09-2005 à 12:30:48
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
Marsh Posté le 28-09-2005 à 12:33:14
ah cela marche sans les \r !!!!!
Incroyable !! Merci 1000 fois ¨!!
Maintenant va savoir pourquoi??????
Marsh Posté le 28-09-2005 à 12:37:02
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 |
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 ...
Marsh Posté le 11-12-2004 à 15:48:06
bonjour,
j'ai quelques petites difficultés avec la fonction mail
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 ...