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 :
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 <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> </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> </p> <p> <input type="submit" value="Envoyer" name="envoyer"> <input type="reset" value="Effacer" name="effacer"> <br> <br> </p> </form>
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
Partager