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 :

Email en HTML avec la fonction mail()


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut Email en HTML avec la fonction mail()
    Bonsoir,

    J'envois parfaitement bien des email avec la fonction mail(), via un formulaire web, mais je les envoie au format texte seulement. Je souhaiterais l'envoyer au format HTML.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    	$recipient = MY_PRO_EMAIL_SUPPORT; //recipient
    	$mail_body = createHTML ($hisName, $hisEmail, $hisMessage); //mail body
    	$subject="Messsage de $hisName par le formulaire web de $hisSubject";
     
    	$header = "From: ". $hisName . " <" . $hisEmail . ">\r\n"; //optional headerfields
    	$headers .='Reply-To: $hisEmail'."\n"; 
    	$headers .='Content-Type: text/html; charset="iso-8859-1"'."\n"; 
    	$headers .='Content-Transfer-Encoding: 8bit'; 	
     
    	// ini_set('sendmail_from', 'me@domain.com');
    	$rslt = mail($recipient, $subject, $mail_body, $header); //mail command :)
    Notez que j'inclue dans le header le 'Content-Type: text/html; Or le message est envoyé au format texte/plain.

    Une idée ?

    Merci.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Pas beaucoup de temps de détailler ce soir, mais prends un html 'toto.htm'
    et envoies le ainsi (à toi d'adapter a ton cas)
    Code php : 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
     
    <?php
    $Le_Objet="mon mail a toi";
     $Le_Body = "";
     $Le_Html="toto.htm";
     $Sa_Ligne=file($Le_Html);
     $NbrLig=count($Sa_Ligne)-1;
     for($i=0;$i<=$NbrLig;$i++)
      {
       $Le_Body .= $Sa_Ligne[$i];
      }
    $X_De = "MIME-Version: 1.0\r\n";
    $X_De .= "content-type: text/html; charset=utf-8\r\n";   
    $X_De .= "From: jean yves Machin <jeanyvesMachin@ox.com>";
    $X_A = "To: Durand Jacques <durand@orange.fr>";
    $fl=mail($X_A, $Le_Objet, $Le_Body, $X_De);  
    ?>

  3. #3
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut
    Bonsoir,

    J'ai évidement corrigé la première occurrence du $header dans laquelle il manque un s.

    J'ai fais une emprunte du header et du body dans un fichier texte. Je fais un copier/coller pour que quelqu'un puisse vérifier ce qui bloque. Si il y a.

    header
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    From: Mon Nom <monemail@monfai.com>
    Reply-To: monemail@monfai.com
    Mime-Version: 1.0
    Content-Type: text/html; charset="iso-8859-1"
    Content-Transfer-Encoding: 8bit

    body
    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
     
    <html>
    	<head> 
    		<style TYPE="text/css">
    			BODY	{color: grey; background: white; font-family: verdana, Geneva, Arial; font-size: 75%;}
    			A:link	{color: #326089; font-size: 12;}
    			A:visited {color: #326089; font-size: 12;}
    			TD		{font-family: Arial; font-size: 12; }
    			TH		{font-family: Arial; font-size: 12; }
    			EM		{font-family: Arial; font-size: 12; font-weight: bold; color:#E5F2F3; font-style: normal }
    			STRONG	       {font-family: Arial; font-size: 12; font-weight: bold; color:#326089; font-style: normal }
    			H1		{font-family: Arial; font-size: 24; font-weight: bold; color:#FF0000; font-style: normal }
    			H2		{font-family: Arial; font-size: 14; font-weight: bold; color:#0080E2; font-style: normal }
    			.hidden  {display:none}
    		</style>
    	</head>
    	<body>
    	<h1>Email via Formulaire Web de xxxxx</h1>
    	<h2>Origine : Mon Nom (  monemail@monfai.com  ) </h2>
    	<p>
    	Corps du message. bla bla bla
    	</p>
    	</body>
    </html>

  4. #4
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut
    Ca y est. Il faut supprimer les balises html les head et les styles du corps du message.

  5. #5
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut
    Merci Christèle, je n'avais pas lu ta réponse avant de poster mes deux dernières.

    En réalité cela fonctionnait mais mon problème était que dans le corps du message je metais une page web complète (avec les balise <html>, <head>, <script>, etc.) et cela ne fonctionnant pas. J'ai juste mis des balises <h1>, <h2> et <div> avec des style inline et ca fonctionne.

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

Discussions similaires

  1. [PHP 5.0] Envoyer de l'HTML avec la fonction mail()
    Par pierrot10 dans le forum Langage
    Réponses: 3
    Dernier message: 19/05/2009, 22h48
  2. Réponses: 1
    Dernier message: 09/05/2007, 21h36
  3. Réponses: 7
    Dernier message: 10/06/2006, 14h31
  4. Réponses: 4
    Dernier message: 06/03/2006, 16h14
  5. [Mail] problème avec la fonction mail()
    Par artotal dans le forum Langage
    Réponses: 2
    Dernier message: 13/11/2005, 03h14

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