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 :

envoi mail en html via formulaire php


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut envoi mail en html via formulaire php
    Bonjour à tous.

    Je suis nouveau sur ce forum et aussi dans le monde de PHP.
    Donc merci pour cette source d'informations et d'entraide.

    Voilà, donc moi je voudrais pouvoir envoyer un mail au format html, histoire de faire une jolie mise en page avec des couleurs, des images, etc... depuis un formulaire et que dans ce mail, il y ai les valeurs des champs renseignés précédemment dans le formulaire.

    Voici ma procédure : j'ai 3 pages en tout
    - formulaire.html : page classique où il y a mon formulaire. Je fais normalement les tests de champs vide dans cette page en javascript.
    - envoimail.php : la page appelée en action par mon formulaire.
    - formulaireRetour.html : une fois le mail envoyé, je fais une redirection sur cette page.

    J'ai vraiment cherché longtemps sur ce forum et j'ai trouvé quelques morceaux de code, notamment celui de Papapetch aidé par 12monkeys.
    Apparemment, eux réussissent à envoyer un mail avec les valeurs de leur formulaire dans le mail au format html (j'utilise Outlook pour la réception de mes mail). Mais moi, non
    Je reçois bien le texte "en dur" mais pas les variables. De plus mes accents, ç, etc... ne sont pas interprétés.

    Voici le code de formulaire.html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <form method="POST" action="envoimail.php" enctype="text/plain" name="test" id="test">
    <table width="600">
    <tr>
    <td width="35"></td>
    <td width="565">Message d'introduction test form4.1
      <p>&nbsp;</td>
    </tr>
    <tr>
    <td width="35"></td>
    <td width="565">
    Nom :<br>
    <input type="text" name="nom" id="nom" size="20">
     
    <p>Prénom :<br>
    <input type="text" name="prenom" id="prenom" size="20"></p>
     
    <p>E-mail :<br>
    <input type="text" name="email" id="email" size="20"></p>
     
    <p>Message :<br>
    <textarea rows="4" cols="40" name="message" id="message"></textarea></p>
     
    <p>&nbsp;</p>
    <p>
    <input type="submit" value="Envoyer" name="envoyer">&nbsp;&nbsp;&nbsp;
    <input type="reset" value="Effacer" name="effacer"> <br>
    <br>
    </p>
    </form>
    Et voici le code de envoimail.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <!-- DEBUT DU SCRIPT envoimail.php-->
    <html>
    <head>
     
    </head>
    <body>
    <?
    // DECLARATION DES VARIABLES 
    	$destinataire = "mon@adresse.com";
    	$sujet = "Formulaire de contact";
    	setlocale (LC_TIME, 'fr_FR','fra');
    	$aujourdhui = strftime("%A %d %B %Y %T %H:%M:%S"); 
     
    // HEADERS DU MAIL 
        $entete = "MIME-version: 1.0 \r\n";
    	$entete .= "Content-type: text/html; charset=iso-8859-1 \r\n"; 
    	$entete .= "From: $_POST[email] \r\n";
     
    // MESSAGE HTML 
    	$message = "<div><span style=\"font-weight:bold\">Message enregistré le $aujourdhui</span><br />";
    	$message .= "<br />";
    	$message .= "<span style=\"font-weight:bold\">Nom : </span> htmlentities($_POST[nom])<br />";
    	$message .= "<br />";
    	$message .= "<span style=\"font-weight:bold\">Prénom : </span> $_POST[prenom]<br />";
    	$message .= "<br />";
    	$message .= "<span style=\"font-weight:bold\">Email : </span> $_POST[email]<br />";
    	$message .= "<br />";
    	$message .= "<span style=\"font-weight:bold\">Message : </span> $_POST[message]<br />";
    	$message .= "<br /></div>";
     
    // ENVOI DU MAIL 
        if (mail($destinataire, $sujet, $message, $entete)) 
    		{ 
    		echo 'Le mail a été envoyé';
    		} 
        else 
    		{ 
    		echo 'Le mail n\'a pu être envoyé'; 
    		} 
     
    ?>
    <script language="javascript" type="text/javascript">
    <!--
    window.location.replace("formulaireRetour.html");
    -->
    </script>
    </body>
    </html>
    <!-- FIN DU SCRIPT envoimail.php-->

    Voilà, si quelqu'un veut bien essayer de me sortir de la panade, je lui en serai très reconnaissant.

    D'avance, merci.

    Longue vie à ce forum !!!

    Flamby

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    pour les variables, écrit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    "blablabla".$_POST['mavariable']."nlanlanla"
     
    // plutot que 
     
    "blablabla$_POST['mavariable']nlanlanla"
    Si ton code n'est pas interprété comme du HTML dans ton email, assure toi de ne pas oublier les balises <html><head></head><body></body></html>
    Si vous avez un message d'erreur, n'oubliez pas de le lire, la réponse à votre problème est surement dedans !

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Ok. Merci beaucoup.
    Je vais essayer ça ce soir, je te tiens au courant.

    J'ai une autre petite question au passage, concernant justement les ' et les "

    Je réussi à envoyer un mail (format html) avec phpmailer().
    Mais là encore j'ai le texte mais pas mes variables...
    Le problème est que la syntaxe n'est plus la même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mail->Body.='<tr><td>Question 1 : </td></tr>';
    Les " sont des ' et inversement.

    Peux-tu me dire comment insérer une variable là dedans ?

    Mais bon, si ta solution fonctionne, ça m'ira déjà très bien.

    Merci encore

    Flamby

  4. #4
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Hello Gloubi

    Je viens d'apporter tes modifs et... ça ne fonctionne pas
    Je suis dépité...

    Voilà le nouveau code de envoimail.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <!-- DEBUT DU SCRIPT envoimail.php-->
    <html>
    <head>
     
    </head>
    <body>
    <?
    // DECLARATION DES VARIABLES 
    	$destinataire = "mon@adresse.com";
    	$sujet = "Formulaire de contact";
    	setlocale (LC_TIME, 'fr_FR','fra');
    	$aujourdhui = strftime("%A %d %B %Y %T %H:%M:%S"); 
     
    // HEADERS DU MAIL 
        $entete = "MIME-version: 1.0 \r\n";
    	$entete .= "Content-type: text/html; charset=iso-8859-1 \r\n"; 
    	$entete .= "From: $_POST[email] \r\n";
     
    // MESSAGE HTML 
    	$message = "<html><head></head><body>";
    	//$message .= "<div><span style=\"font-weight:bold\">Message enregistré le ".$aujourdhui."</span><br />";
    	$message .= "<br />";
    	$message .= "<span style=\"font-weight:bold\">Nom : </span> ".$_POST['nom']."<br />";
    	$message .= "<br />";
    	$message .= "<span style=\"font-weight:bold\">Prénom : </span> ".$_POST['prenom']."<br />";
    	$message .= "<br />";
    	$message .= "<span style=\"font-weight:bold\">Email : </span> ".$_POST['email']."<br />";
    	$message .= "<br />";
    	$message .= "<span style=\"font-weight:bold\">Message : </span> ".$_POST['message']."<br />";
    	$message .= "<br />";
    	$message .= "</body></html>";
     
    // ENVOI DU MAIL 
        if (mail($destinataire, $sujet, $message, $entete)) 
    		{ 
    		echo 'Le mail a été envoyé';
    		} 
        else 
    		{ 
    		echo 'Le mail n\'a pu être envoyé'; 
    		} 
     
    ?>
    <script language="javascript" type="text/javascript">
    <!--
    window.location.replace("formulaireRetour.html");
    -->
    </script>
    </body>
    </html>
    <!-- FIN DU SCRIPT envoimail.php-->
    et voici ce que je reçois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Nom : 
     
    Prénom : 
     
    Email : 
     
    Message :
    J'ai l'impression que ça fonctionne chez beaucoup de monde sauf chez moi...
    J'ai essayé de mettre ça au début :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $message = "MIME-version: 1.0 \r\n";
    	$message .= "Content-type: text/html; charset=iso-8859-1 \r\n";
    $message .= "<html><head></head><body>";
    etc...
    mais rien n'y fait... Je désespère vraiment

    Si tu vois une erreur je suis prenneur bien entendu...
    En tout cas merci

    Flamby

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    As-tu vérifié que les headers de ton mail son corrects pour envoyer un message en HTML ?

  6. #6
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Hello Gloubi, hello NesheK

    Merci à vous deux pour le temps que vous m'avez consacré.
    En fait j'ai essayer d'envoyer mon formulaire avec phpmailer() et ça fonctionne plutôt pas mal.
    J'ai encore quelques améliorations a apporter et quelques buggs mais c'est pas trop mal.

    Je vais faire un nouveau post avec mes soucis phpmailer si je trouve vraiment pas d'où viennent les soucis.

    En tout cas merci à vous deux pour votre aide.

    Vive ce forum !!

    Flamby

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/07/2010, 21h52
  2. [PDF] Impression PDF via formulaire PHP
    Par pika698 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 16/02/2010, 10h33
  3. envoi mail en html
    Par franfr57 dans le forum Général Java
    Réponses: 2
    Dernier message: 23/04/2008, 16h03
  4. [SQL] UPDATE via formulaire PHP
    Par eizenhower dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 27/07/2007, 11h25
  5. Automation Mail en HTML Via OUTLOOK EXPRESS
    Par Stéphane Olivier BERNARD dans le forum Access
    Réponses: 1
    Dernier message: 01/11/2005, 09h01

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