IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

html dans le mail (PHP) qui fait échouer


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 382
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut html dans le mail (PHP) qui fait échouer
    Bonjour,

    si je rajoute un lien html dans le texte du mail :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $texte='Il y a une nouvelle sortie sur le <a href="http://www.rocandco.com">site</a>. Allez-y pour vous inscrire.';
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $texte='Il y a une nouvelle sortie sur le site. Allez-y pour vous inscrire.';
    , l'envoi du mail échoue : le texte du mail s'arrête à href= ; bien que j'ai spécifié le format html dans le header :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $from.="Content-Type: text/html; charset= utf-8\n";
    et de plus le header lui-même est perturbé : l'expéditeur n'apparaît plus, alors que j'ai mis dans le header:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $from="From: ".$prenom." ". $nom."<".$mail.">\r\n";
    . Qu'est-ce qui ne va pas ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    Que fais-tu de ta variable $texte ?

    Il semble que ta chaîne s'arrête à ta guillemet double... Surement un problème d'échappement de carcatères spéciaux.
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 382
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut
    Oui, j'y avais pensé, mais avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $texte='Il y a une nouvelle sortie sur le <a href=\"http://www.rocandco.com\">site</a>. Allez-y pour vous inscrire.';
    c'est pareil...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    Et donc que fais-tu de ta variable $texte ? C'est le code qui l'utilise qui va permettre de savoir ce qui la modifie, ou ce qui l'interprète...
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  5. #5
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 382
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut
    En fait, je la passe à un autre serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <iframe frameborder=0 src="http://vercorshandisport.org/testmail/mail.php?dest=<?=$adresse?>&sujet=<?=$sujet?>&message=<?=$texte?>&from=<?=$from?>" ></iframe>
    car l'envoi de mail ne marche pas là où c'est et sur cet autre serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php 
     
    $to=$_GET['dest'];
    $subject=$_GET['sujet'];
    $msg=$_GET['message'];
    $from=$_GET['from'];
     
    mail($to, $subject, $msg, $from);
    ?>
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    Toutes les variables que tu passes dans des URL, il faut échapper les caractères spéciaux du HTML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <iframe frameborder=0 src="http://vercorshandisport.org/testmail/mail.php?dest=<?=htmlentities($adresse)?>&sujet=<?=htmlentities($sujet)?>&message=<?=htmlentities($texte)?>&from=<?=htmlentities($from)?>" ></iframe>
    Pour les optioons d'encodage de cette fonction, voir la doc officielle.
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  7. #7
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 382
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut
    Merci pour l'info ; maintenant, le texte est complet et l'émetteur est bon, mais le texte est même trop long ! Je n'arrive pas à enlever les slashes devant les guillemets :
    Il y a une nouvelle sortie sur le <a href=\"http://www.rocandco.com\">site</a>.
    Allez-y pour vous inscrire.
    et le code, c'est ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $texte='Il y a une nouvelle sortie sur le <a href="http://www.rocandco.com">site</a>. Allez-y pour vous inscrire.';
    $sujet="Nouvelle sortie escalade Rocandco";
    ?>
    <iframe frameborder=0 src="http://vercorshandisport.org/testmail/mail.php?dest=<?=htmlentities($adresse)?>&sujet=<?=htmlentities($sujet)?>&message=<?=htmlentities($texte)?>&from=<?=htmlentities($from)?>" ></iframe>
    <?php
    Ca vient sûrement du fait que l'on passe $texte dans htmlentities, mais si on le retire, ça ne marche plus, donc comment faire ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  8. #8
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 382
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut
    J'ai pû enlever les slashes : le texte étant tout le temps le même, je l'ai mis dans mail.php, mais en fait, le problème était plus grave que ça : on aurait pas dû voir le href ! Et comme le header ne change jamais non plus, j'ai résolu ça en l'initialisant dans mail.php...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Balises HTML non interprétées dans le mail php
    Par nordine14 dans le forum Langage
    Réponses: 6
    Dernier message: 27/09/2011, 13h26
  2. [Mail] Envoyer du html dans un mail
    Par Laeticia dans le forum Langage
    Réponses: 3
    Dernier message: 20/12/2006, 18h50
  3. [Tableaux] Inclure une page HTML dans un gabarit PHP
    Par Tonio83 dans le forum Langage
    Réponses: 6
    Dernier message: 09/09/2006, 20h27
  4. [FLASH MX2004] Balises HTML dans mysql et PHP
    Par Garra dans le forum Flash
    Réponses: 3
    Dernier message: 06/04/2006, 11h46
  5. Integration d'une page html dans un mail
    Par mael94420 dans le forum ASP
    Réponses: 7
    Dernier message: 13/12/2005, 08h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo