ZeDevil Posté 6 Décembre 2004 Partager Posté 6 Décembre 2004 Bonjour, J'ai un formulaire qui permet d'envoyer sur un mail des informations precedemment rentré dans celui ci. Mais ca arrive sur le mail en texte. Je voudrai afficher un mail en html, mais ne sais comment l'inclure dans le php. J'ai deja essayer mais sans succès. Je vous donne l'exemple du corps de texte: $corps.="Nom : ".$f_1."\n"; $f_1 est la fonction du nom rentré dans le formulaire. Lien vers le commentaire Partager sur d’autres sites More sharing options...
genmin Posté 6 Décembre 2004 Partager Posté 6 Décembre 2004 Je n'ai pas tout compris, le code que tu donne fonctionne très bien me semble t'il. Que cherche tu exactement à afficher en html ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 6 Décembre 2004 Partager Posté 6 Décembre 2004 Salut ZeDevil, Il faut ajouter des entêtes spécifiques si tu veux que le mail soit au format html. $headers .= "MIME-Version: 1.0\r\n";$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; Dan Lien vers le commentaire Partager sur d’autres sites More sharing options...
ZeDevil Posté 6 Décembre 2004 Auteur Partager Posté 6 Décembre 2004 Alors j'essai de mieux m'expliquer... J'ai un formulaire qui envoie les données rentrées par l'utilisateur sur un mail. Le contenu du mail est un simple texte alors que je voudrai faire une mise en page en html. Il me faut donc inclure du html dans les réponse afin par exemple de mettre une couleur de font ainsi que de faire un tableau pour ordonner les données. Et je ne sais comment faire..... Lien vers le commentaire Partager sur d’autres sites More sharing options...
genmin Posté 6 Décembre 2004 Partager Posté 6 Décembre 2004 Donc comme la fait remarquer Dan il faut pas oublier les 2 ligne dans l'entete et après tu inserre ton code html dans ta variable $corps Lien vers le commentaire Partager sur d’autres sites More sharing options...
ZeDevil Posté 6 Décembre 2004 Auteur Partager Posté 6 Décembre 2004 Ok Dan pour les $headers. je les ai placé tout en haut du script php, mais ou es ce que j'y fait appel, car je pense qu'il faut les afficher les '$headers' ou y faire appel.....ou alors je les laisse juste comme ca ? Je voulais également savoir comment je fais pour inclure du html dans la partie php afin de mettre mon texte dans des tableaux. Par exemple dans cette phrase: $corps.="Nom : ".$f_1."\n"; Qui donne en version texte dans le mail: Nom : ZeDevil Lien vers le commentaire Partager sur d’autres sites More sharing options...
furious Gontran Posté 6 Décembre 2004 Partager Posté 6 Décembre 2004 En fait c'est dans mail() qu'apparaissent les headers: mail ( string to , string subject , string message , string additional_headers) ; String to : l'adresse ou tu envoi. string subject: le sujet. string message: le message. Additional headers: ton headers. Les headers te permettent aussi de definir l'adresse de reponse en cas d'erreur d'envoi, ou de mail recu etc. Pour les headers ce tuto est bien fais : http://www.phpguide.net/visituto.php3?numtut=165 Lien vers le commentaire Partager sur d’autres sites More sharing options...
ZeDevil Posté 6 Décembre 2004 Auteur Partager Posté 6 Décembre 2004 Je pense que je vais réussir a m'en sortir avec le lienque tu m'a donné..... Merci. Lien vers le commentaire Partager sur d’autres sites More sharing options...
ZeDevil Posté 6 Décembre 2004 Auteur Partager Posté 6 Décembre 2004 Ce que je ne comprend pas, c'est que mon code html ce met dans les couleur du PHP, et non comme marqué dans la page du lien....cad, tout en rouge... Donc il me prend mon html comme du php, alors que j'ai bien mis comme c'était marqué !!! Ai-je oublié quelque chose ??? voilà une partie de ce que j'ai fait: // corps en html $corps_html.="<html><head><style type="text/css"> <!-- .minititre { font-family: Georgia, "Times New Roman", serif, sans-serif; font-size: 12px; text-transform: uppercase; color: #666699; font-weight: bold; } --> </style></head> <body bgcolor="#999999"> <table width="100%" height="100%" border="0"> <tr> <td align="center" valign="top"> <table width="600" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="center" valign="middle" bgcolor="#FFFFFF"><table width="596" border="0" cellpadding="0" cellspacing="10" bgcolor="#CCCCCC"> <tr> <td colspan="2" class="minititre"><img src="../img/spacer.gif" width="1" height="10"></td> </tr> <tr> <td colspan="2" align="center" class="minititre">Bonjour</td> </tr>"; $corps_html.="<tr> <td colspan="2">"Nom : ".$f_1."\n"</td> </tr>"; Lien vers le commentaire Partager sur d’autres sites More sharing options...
genmin Posté 6 Décembre 2004 Partager Posté 6 Décembre 2004 (modifié) ca vien du fait que tu referme les " dans ton code html, il faut que tu précide que c'est un caractère spécial avec \ voilà ce que ca donne <?php // corps en html$corps_html.="<html><head><style type=\"text/css\"><!--.minititre {font-family: Georgia, \"Times New Roman\", serif, sans-serif;font-size: 12px;text-transform: uppercase;color: #666699;font-weight: bold;}--></style></head><body bgcolor=\"#999999\"><table width=\"100%\" height=\"100%\" border=\"0\"><tr> <td align=\"center\" valign=\"top\"><table width=\"600\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr> <td align=\"center\" valign=\"middle\" bgcolor=\"#FFFFFF\"><table width=\"596\" border=\"0\" cellpadding=\"0\" cellspacing=\"10\" bgcolor=\"#CCCCCC\"><tr> <td colspan=\"2\" class=\"minititre\"><img src=\"../img/spacer.gif\" width=\"1\" height=\"10\"></td></tr><tr> <td colspan=\"2\" align=\"center\" class=\"minititre\">Bonjour</td></tr>\";$corps_html.=\"<tr> <td colspan=\"2\">\"Nom : \".$f_1.\"\n\"</td></tr>";?> Modifié 6 Décembre 2004 par genmin Lien vers le commentaire Partager sur d’autres sites More sharing options...
ZeDevil Posté 6 Décembre 2004 Auteur Partager Posté 6 Décembre 2004 Ouais ok, donc il faut que je mette des \ a chaque fois qu'il y a des " Je te remercie beaucoup.....je te tiens au courant si tout fonctionne bien des que j'ai fini.... Lien vers le commentaire Partager sur d’autres sites More sharing options...
ZeDevil Posté 6 Décembre 2004 Auteur Partager Posté 6 Décembre 2004 Parfait tout ca !!! Merci tout le monde.....vraiment bon forum !!! Lien vers le commentaire Partager sur d’autres sites More sharing options...
ZeDevil Posté 6 Décembre 2004 Auteur Partager Posté 6 Décembre 2004 Bon alors ca marche bien enfin avec quelques petits problemes qd meme... Bon alors deja, le CSS ne s'applique pas......je pense qu'il doit yu avoir une erreur de script avec les " présent au debut mais pas a la fin: $corps_html.="<html><head><style type=\"text/css\"> <!-- .minititre { font-family: Georgia, \"Times New Roman\", serif, sans-serif; font-size: 12px; text-transform: uppercase; color: #666699; font-weight: bold; } --> </style></head> Apres par contre, le mail s'affiche tres sur hotmail, mais j'ai testé sous outlook express et ca me met le texte brut et apres tout le code html, mais ca n'en choisi pas un des 2, et le html ne s'affiche pas..... Alors je ne comprend pas pourquoi il me met le code html dans le mail.... Lien vers le commentaire Partager sur d’autres sites More sharing options...
genmin Posté 6 Décembre 2004 Partager Posté 6 Décembre 2004 Déjà je viens de voir que j'ai fait une erreur sur le script que je t'ai donné avec le \ avant le " </tr>\";$corps_html.=\"<tr> <td colspan=\"2\">\"Nom : \".$f_1.\"\n\"</td></tr>";?> devrait devenir </tr>";$corps_html.="<tr> <td colspan=\"2\">\"Nom : ".$f_1."\n\"</td></tr>";?> mille excuse. Sinon pour ce qui est de ton style je ne vois pas trop pourquoi il ne s'applique pas. Pour ce qui est de outlook ca ne pourrai pas venir d'une option à régler correctement ??? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 6 Décembre 2004 Partager Posté 6 Décembre 2004 Si Outlook te renvoie le code html comme du texte, c'est parce que la balise header n'est pas correctement orthographée. Tu peux nous mettre le contenu de cette balise ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
ZeDevil Posté 6 Décembre 2004 Auteur Partager Posté 6 Décembre 2004 Déjà je viens de voir que j'ai fait une erreur sur le script que je t'ai donné avec le \ avant le " </tr>\";$corps_html.=\"<tr> <td colspan=\"2\">\"Nom : \".$f_1.\"\n\"</td></tr>";?> devrait devenir </tr>";$corps_html.="<tr> <td colspan=\"2\">\"Nom : ".$f_1."\n\"</td></tr>";?> mille excuse. Sinon pour ce qui est de ton style je ne vois pas trop pourquoi il ne s'applique pas. Pour ce qui est de outlook ca ne pourrai pas venir d'une option à régler correctement ??? <{POST_SNAPBACK}> Merci de le dire, mais j'avais fait la correction, n'étant pas si nul en php...... Lien vers le commentaire Partager sur d’autres sites More sharing options...
ZeDevil Posté 6 Décembre 2004 Auteur Partager Posté 6 Décembre 2004 (modifié) Si Outlook te renvoie le code html comme du texte, c'est parce que la balise header n'est pas correctement orthographée. Tu peux nous mettre le contenu de cette balise ? <{POST_SNAPBACK}> Pas de prob la voici: $tete="From:".$f_6."\n"; $tete.= "MIME-Version: 1.0\n"; $tete.= "Content-Type: multipart/alternative; boundary=\"$boundary\""; $tete2="From:monmail_AT_chezmoi.net\n"; $tete2.= "MIME-Version: 1.0\n"; $tete2.= "Content-Type: multipart/alternative; boundary=\"$boundary\""; J'envoie à 2 mail différent...c'est pour ca le tete2 et en dessous pour l'envoie: mail("monmail_AT_chezmoi.net", $titre, stripslashes($corps), $tete mail("$f_6", $titre, stripslashes($corps), $tete2 Modifié 6 Décembre 2004 par ZeDevil Lien vers le commentaire Partager sur d’autres sites More sharing options...
genmin Posté 6 Décembre 2004 Partager Posté 6 Décembre 2004 pourquoi ne pas avoir utilisé le code donné par Dan un peu plus haut ?? $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; Lien vers le commentaire Partager sur d’autres sites More sharing options...
ZeDevil Posté 6 Décembre 2004 Auteur Partager Posté 6 Décembre 2004 Juste parcequ'il était marqué dans le lien de furious Gontran au cas ou les personnes ne voulant pas voir en html peuvent le faire en texte brut.... Lien vers le commentaire Partager sur d’autres sites More sharing options...
genmin Posté 6 Décembre 2004 Partager Posté 6 Décembre 2004 En effet ca parais interressant, cependant je vien de jetter sur ce lien et notament au code pour le cas d'email au format html ou txt. Comme je ne suis pas un expert non plus je ne pige pas trop car au final tu te retrouve bien avec les format (txt et html) dans le message ????? et je ne vois vraiment pas à quoi sert la variable $boundary Ca deviens plus compliquer que ce que je pensai tout ca Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 6 Décembre 2004 Partager Posté 6 Décembre 2004 Il te faut un espace entre les 2 pts des entetes, et leur valeur : FROM:<espace>moi_AT_ici.com Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 6 Décembre 2004 Partager Posté 6 Décembre 2004 Compliqué ? Non... Une page d'explications claire sur les entetes : http://www.laltruiste.com/document.php?url...ntete_mime.html Lien vers le commentaire Partager sur d’autres sites More sharing options...
ZeDevil Posté 6 Décembre 2004 Auteur Partager Posté 6 Décembre 2004 Les espaces n'y on rien changé !!! Je regarde ton lien Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 6 Décembre 2004 Partager Posté 6 Décembre 2004 Mets le type Mime avant le From pour les 2 cas. Lien vers le commentaire Partager sur d’autres sites More sharing options...
ZeDevil Posté 7 Décembre 2004 Auteur Partager Posté 7 Décembre 2004 Bah c'est deja fait non ??? $tete="From: ".$f_6."\n"; $tete.= "MIME-Version: 1.0\n"; $tete.= "Content-Type: multipart/alternative; boundary=\"$boundary\""; $tete2="From: moi_AT_ici.net\n"; $tete2.= "MIME-Version: 1.0\n"; $tete2.= "Content-Type: multipart/alternative; boundary=\"$boundary\""; Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant