Ce forum est en partie financé par l’affichage de publicités. Merci de désactiver votre bloqueur de publicités pour nous permettre de continuer à fournir ce service.

[PHP/HTML] Envoyer un formulaire par mail en HTML

Discussion dans 'Développement web' créé par iPascal, 3 Décembre 2008.

Modérateurs: Nephou
  1. iPascal

    iPascal Membre junior

    Inscrit:
    20 Novembre 2007
    Messages:
    54
    J'aime reçus:
    2
    Salut à tous ! Encore besoin de votre aide;)

    J'apprends au fur et à mesure les bases du PHP et du javascript mais mes connaissances ne suffisent pas...

    En fait j'ai :
    • une page HTML contenant un formulaire (bon de commande)
    • une page PHP permettant l'envoi des données du formulaire par mail (mail envoyé à l'acheteur avec le récapitulatif de sa commande)
    Jusque là pas de problème :)

    Ca se complique car je voudrai que le mail ne soit pas du simple texte (pas beau LOL) mais présente les données du formulaire en HTML (un peu comme lorsqu'on passe commande sur l'apple store : on reçoit le récapitulatif de notre commande bien présenté)

    J'ai donc bêtement créé une page HTML pour la mise en forme de mon mail dont j'ai copié le code dans ma variable $body de mon fichier PHP. Comme je le prévoyais, ça ne fonctionne pas.

    D'où ma question : comment envoyer un mail au format HTML incluant des variables issues d'un formulaire grâce à un fichier de traitement PHP? :confused:

    J'espère au moins que c'est possible:cool:

    ++

    iPascal
     
  2. da capo

    da capo abonné absent
    Club MacG

    Inscrit:
    12 Août 2001
    Messages:
    17 360
    J'aime reçus:
    3 554
  3. iPascal

    iPascal Membre junior

    Inscrit:
    20 Novembre 2007
    Messages:
    54
    J'aime reçus:
    2
    C'est justement grâce à cette page que j'avais appris à créer mes fichiers traitement.php.
    Le problème c'est que lorsque je met mon code HTML dans la variable $message, les ' et " de mon code posent problème. Ex :
    Code (Text):
     
    <?php
    $headers ='From: "nom"<adresse@fai.fr>'."\n";
    $headers .='Reply-To: adresse_de_reponse@fai.fr'."\n";
    $headers .='Content-Type: text/html; charset="iso-8859-1"'."\n";
    $headers .='Content-Transfer-Encoding: 8bit';
    §message='
      <html>
      <head>
      <style type="text/css">
      <!--
      .corps {
        font-family: Arial, Helvetica, sans-serif;
        font-size: 14px;
        color: #666;
        text-align: justify;
      }
      -->
      </style>
      </head>
      <body>
      <p class="corps">Votre commande sera expédiée par Colissimo Suivi (La Poste).</p>
      </body>
      </html>
    '
    if(mail('adresse_du_destinataire@fai.fr', 'Sujet', $message, $headers))
    {
      echo 'Le message a été envoyé';
    }
    else
    {
      echo 'Le message n\'a pu être envoyé';
    }
     
     
  4. da capo

    da capo abonné absent
    Club MacG

    Inscrit:
    12 Août 2001
    Messages:
    17 360
    J'aime reçus:
    3 554
    Quel problème ?
    Tu as un message d'erreur ?
    Que se passe-t-il ?
     
  5. TibomonG4

    TibomonG4 Vénérable sage
    Club MacG

    Inscrit:
    26 Novembre 2003
    Messages:
    18 290
    J'aime reçus:
    3 938
    C'est normal que ton sélecteur de classe soit en commentaire ?
     
    GlobalCut aime ça.
  6. da capo

    da capo abonné absent
    Club MacG

    Inscrit:
    12 Août 2001
    Messages:
    17 360
    J'aime reçus:
    3 554
    oui tibo : c'est une protection contre/pour les navigateurs les plus anciens n'interprétant pas les styles. Cela évite à ces derniers de planter lamentablement : ils afficheront au moins la page brute.
     
  7. Anonyme

    Anonyme Invité

    Perso j'ai utilisé ce code que j'ai adapté : ça fonctionne très bien et sans spam. C'est pour dotclear 1 mais très facilement adaptable, il ne faut pas oublier d'envoyer les headers quand on est dans la page contenant le formulaire pour éviter le piratage.

    Le billet.
     
  8. grumff

    grumff Membre d’élite
    Club MacG

    Inscrit:
    9 Novembre 2000
    Messages:
    3 606
    J'aime reçus:
    99
    Tu peux mettre des antislash devant tes simples et doubles quotes, au lieu de ruser une fois sur deux entre les guillemets simples ou doubles. ;)
     
  9. iPascal

    iPascal Membre junior

    Inscrit:
    20 Novembre 2007
    Messages:
    54
    J'aime reçus:
    2
    @Gloup Gloup : je vais regarder ton code ensuite. Ca pourrait être intéressant :)

    Pour l'instant je reste sur le code que j'ai fait. Merci grunmff pour la technique de l'antislash, ça fonctionne très bien. Voici les résultats :
    • Apple mail : impeccable. Toute la mise en forme est respectée
    • Thunderbird : idem, j'ai fini par régler le problème des accents
    • Gmail : juste la mise en forme élémentaire (saut de ligne, de paragraphe) mais pas de bordures, gras, taille de police...

    En tout cas merci pour votre aide ! ! :up:
     
  10. iPascal

    iPascal Membre junior

    Inscrit:
    20 Novembre 2007
    Messages:
    54
    J'aime reçus:
    2
    Pas moyen de trouver la solution pour afficher correctement le contenu de l'email en HTML sous gmail (webmail):mad:. Même sous Hotmail ça passe!:D

    Il doit y avoir quelque chose à préciser dans le code puisque la majorité des newsletter que je reçois s'affichent bien contrairement à mon mail...

    EDIT : en fait gmail ne tient pas compte de mes styles dans <head>. Par contre le gras (<strong>) qui est dans <body> est bien reconnu...
     
  11. Anonyme

    Anonyme Invité

  12. iPascal

    iPascal Membre junior

    Inscrit:
    20 Novembre 2007
    Messages:
    54
    J'aime reçus:
    2
    Merci Gloup Gloup! :) L'astuce était donc de mettre les CSS en ligne directement dans body. :up:

    C'est justement ce que je venais de faire en constatant que le gras qui était dans body était pris en compte!

    J'ai quand même pris la peine de lire la page que tu m'avais donnée et ça n'a pas été une perte de temps. J'ai remplacé mes div par un tableau pour que ça soit mieux reconnu, en particulier par outlook qui ne tenait pas compte de la largeur et de la position centrée.

    MERCI À TOUS! :up:
    ++

    PS. une dernière question : y a-t-il un véritable intérêt à faire un email mixe : texte brut/html?
     
  13. tatouille

    tatouille Vétéran

    Inscrit:
    1 Juin 2004
    Messages:
    5 174
    J'aime reçus:
    494
    tu sais qu il y a beaucoup de gens qui banissent les html-crap
     
  14. p4bl0

    p4bl0 Membre d’élite
    Club MacG

    Inscrit:
    12 Juillet 2004
    Messages:
    4 772
    J'aime reçus:
    425
    J'confirme.


    Donc oui *attention roulement de tambour, fait très très rare voire quasi impossible, je vais dire du viens de voyages-sncf point com !!* le mieux est de proposé le choix de mail HTML ou plain text comme le fait le site voyages-scnf.
     
Modérateurs: Nephou
Chargement...