Page 1 sur 1

Problème d'affiche lors de l'envoi d'un mail

Posté : 15 sept. 2005, 20:35
par Invité
Bonsoir tout le monde,

J'ai besoin d'aide pour un simple problème d'affichage de liens dans le contenu dans mail (envoie par la fonction mail() ). Ce qu'il se passe, s'est que les liens ne sont pas correctement interprétés.

Résultat sur une boîte caramail :
"Pour valider l'inscription cliquer ici : [url]http://www.mon_site.fr[/url]>http://127.0.0.1/w
ww.mon_site.fr>www.mon_site.fr"

Résultat sur une boîte yahoo :
"Pour valider l'inscription cliquer ici : <a
href=http://127.0.0.1/www.mon_site.fr>www.mon_site.fr</a>"

Codes testés:

Code : Tout sélectionner

$url1 = "<a href=\"http://127.0.0.1/www.mon_site.fr\">www.mon_site.fr</a>";
ou

Code : Tout sélectionner

$url1 = "<a href=http://127.0.0.1/www.mon_site.fr>www.mon_site.fr</a>"; $message = "Pour valider l'inscription cliquer ici : ".$url1;
>> j'ai essayé de plusieurs façons (format texte, html, avec des " ou ') mais pas moyen ça ne s'affiche jamais correctement. Si je test sur le navigateur (sans envoie par mail), le code fonctionne... je ne comprends pas !!!

Quelqu'un aurait la solution ????

Posté : 15 sept. 2005, 20:40
par JazzFinder
---

Posté : 15 sept. 2005, 20:49
par Invité
Tu as juste à virer le «127.0.0.1/» pour un mail (lien) externe.
ça ne change rien au problème ! Il s'agit du lien qui n'est pas correctement interprété...

Posté : 15 sept. 2005, 20:53
par ouckileou
pour avoir un lien directement cliquable il te faut envoyer du HTML

donc tu devais mal le faire, peut-être au niveau des en-têtes

mais tu pourra aussi avoir des problèmes d'affichage dans certains clients mails ou webmail
certains transforment aussi les url en liens automatiquement, même en format texte

don si tu veux envoyer un email HTML, montre-nous comment tu fais et on pourra t'aider

Posté : 15 sept. 2005, 21:05
par Invité
Voilà le test fait au format HTML :

Code : Tout sélectionner

$mail = "[email protected]"; $titre = "Validation de votre inscription sur www.mon_site.fr"; $header ="From: Webmaster www.mon_site.fr <webmaster@mon_site.fr> \n"; $header .="Reply-To: webmaster@mon_site.fr \n"; $message = ' <html> <head> <title>Validation inscription</title> </head> <body> <table> <tr> <td>Pour valider votre inscription cliquer ici :</td> <td><a href="http://127.0.0.1/www.mon_site.fr">www.mon_site.fr</a></td> </tr> </table> </body> </html> '; // envoie du mail mail($mail, $titre, $message, $header);
Résultat obtenu :

Code : Tout sélectionner

Pour valider l'inscription cliquer ici : www.mon_site.fr >http://www.mon_site.fr>www.mon_site.fr
J'ai du mal à comprendre sérieux ?? L'interprétation du webmail fonctionne car j'ai bien reçu le lien cliquable de confirmation lors de mon inscription sur ce site... :?:

Posté : 15 sept. 2005, 21:19
par ouckileou
oui car un webmail c'est, comme son nom l'indique, un outil web qui affiche donc du HTML, et tu consultes tes mails via un navigateur
ton navigateur affiche donc les liens correctement crée

ce n'est pas pareil pour Outlook ou Thunderbird
pour leur envoyer un mail HTML, il a des en-têtes spéciaux à envoyer

fait un petit tour sur Google tu devrais vite trouver un exemple

ou va voir même dans la doc PHP de la fonction mail() il me semble qu'il y en a un : http://fr.php.net/manual/

Posté : 15 sept. 2005, 21:22
par caouicke
oui car un webmail c'est, comme son nom l'indique, un outil web qui affiche donc du HTML, et tu consultes tes mails via un navigateur
ton navigateur affiche donc les liens correctement crée

ce n'est pas pareil pour Outlook ou Thunderbird
pour leur envoyer un mail HTML, il a des en-têtes spéciaux à envoyer

fait un petit tour sur Google tu devrais vite trouver un exemple

ou va voir même dans la doc PHP de la fonction mail() il me semble qu'il y en a un : http://fr.php.net/manual/
Comme je disais le webmail interprète correctement les liens (je n'utilise pas de logiciel de messagerie car l'interprétation n'est pas correcte (remarque il suffit de le paramétrer) mais là n'est pas la question.
Mon code n'est pas correcte pour l'envoie au format HTML ??

Posté : 15 sept. 2005, 21:24
par ouckileou
j'ai bien vu, j'expliquais la différence :
ce n'est pas pareil pour Outlook ou Thunderbird
pour leur envoyer un mail HTML, il a des en-têtes spéciaux à envoyer

Posté : 15 sept. 2005, 21:28
par caouicke
Tu en penses quoi de mon code ??

Posté : 15 sept. 2005, 21:35
par ouckileou
j'en pense qu'il y a du HTML dedans mais que finalement c'est du simple texte car il manque les en-têtes dont je te parle...

tu es allé voir dans la doc de la fonction mail() ?
je suis gentil je te met le lien direct :lol:

=> http://fr2.php.net/manual/fr/function.mail.php

Posté : 15 sept. 2005, 22:30
par caouicke
J'ai testé plusieurs choses :
- ajout de plusieurs headers
- format texte ou html
- sur un webmail ou logiciel de messagerie
- etc...

Bizarrement, j'ai testé sans le "http://" devant les liens et là ça fonctionne... je ne comprends pas tout !!!! :roll: :?:

N'y a t-il pas un header pour le protocole http ???

Posté : 16 sept. 2005, 17:45
par caouicke
C'est bon ça fonctionne nickel !!! Je rentre du boulot et, je m'y remet, j'ai donc tout simplement remplacer le hearder :

Code : Tout sélectionner

'Content-type: text/plain; charset=iso-8859-1'
par :

Code : Tout sélectionner

'Content-type: text/html; charset=iso-8859-1'
>> une prise de tête pour pas grand chose... ça marche au format texte ou html quelque soit le webmail (yahoo ou caramail) et sur un logiciel de messagerie (testé sur Outlook Express)