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 :

Comment modifier le corps d'un message envoyé par mail


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de nico le noob
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 132
    Points : 101
    Points
    101
    Par défaut Comment modifier le corps d'un message envoyé par mail
    Bonjour je n'arrive pas a comprendre ou insérer mon css pour avoir une mise en forme de mon mail (de confirmation, celui que je reçois apres validation). est ce que quelqu'un pourrait m'aider svp ?

    voici le code, HTML et 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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    <?php
    //no coment :p
    if(!empty($_POST)){
    extract($_POST);
    $valid = true;
    if(empty($nom)){
    $valid=false;
    $erreurnom="vous n'avez pas rempli votre nom";
    }
    if(!preg_match("/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i",$email)){
    $valid=false;
    $erreurmail = "votre email n'est pas valide";
    }
    if(empty($email)){
    $valid=false;
    $erreurmail="vous n'avez pas rempli votre mail";
    }
    if(empty($message)){
    $valid=false;
    $erreurmessage="vous n'avez pas rempli votre message";
    }
     
    if($valid){
    $to = "monemail@live.fr";
    $sujet = "contact du site";
    $header="from: monemail@live.fr \n";
    $header .= "reply-to: $email";
    $message= stripslashes($message);
    $nom= stripslashes($nom);
    if(mail($to,$sujet,$message,$header)){
    $erreur="votre message nous est bien parvenu";
    unset($nom);
    unset($email);
    unset($message);
     
    }
    else{
    $erreur = "erreur:votre email n'a pas été envoyé";
    }
    }
    }
    ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
    		<title>TEST</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    		<link rel="stylesheet" media="screen" type="text/css" title="css" href="css.css" />
    		<script type="text/javascript" src="jquery.js"></script>
    		<script type="text/javascript" src="texte.js"></script>
    		<script type="text/javascript" src="formulaire.js"></script>
     
       </head>
       <body>
     
    		<div id="fond">
     
    			<img class="barre_h" src="images/barre_h.jpg" onclick="alert('Pourquoi cliques-tu sur cette image ?');"/>
    			<img class="barre_v" src="images/barre_v.png"/>
    			<img class="titre" src="images/titre.png" />
    			<img class ="logo" src="images/logo.png"/>
     
    		<div id="btn">
    		<div id="fx"></div>
     
    			<img class="acheter" src="images/acheter.png" id="acheter" />
    			<img class="vendre" src="images/vendre.png" id="vendre" />
    			<img class="louer" src="images/louer.png" id="louer" />
    			<img class="gestion" src="images/gestion.png" id="gestion" />
    			<img class="infos" src="images/infos.png" id="infos" />
    			<img class="contact" src="images/contact.png" id="contact" />
    		</div>
    		<div id="text">
     
    			<p class="text1">111</p>
    			<p class="text1">222</p>
                            <P class="text2">333</p>
    			<P class="text4">444</p>
    			<p class="text5">555</p>
     
    		<div id="text6">
     
    				<form method="post" action="index.php">
     
    				<label for="nom">nom: </label><br/>
    				<input type="text" name="nom" id="nom" value=""/>
    				<span class="error-message"></span><br/>
     
    				<label for="email">email: </label><br/>
    				<input type="text" name="email" id="email"value=""/>
    				<span class="error-message"></span><br/>
     
    				<label for="message">votre message: </label><br/>
    				<textarea name="message" id="message"/></textarea>
    				<span class="error-message"></span><br/>
     
    				<input type="submit" value="envoyer" id="envoyer"/>
     
    				</form>
    				</div>
    			</p>
     
    		</div>
     
    		</div>
     
     
       </body>
    </html>
    Merci

  2. #2
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Bonjour

    Ce n'est pas très clair ! Tu envoi un mail et tu veux le mettre en forme ? Si oui là tu nous montre le formulaire pour envoyer le mail... Il faudrait montrer la construction du mail...

    Pour les envois de mail il faut encore utiliser les anciennes méthodes pour une question de compatibilité. Et le CSS doit plutôt être intégré via l'attribut style des balises HTML encore pour une question de compatibilité...

    Un lien pour la compatibilité des propriétés CSS dans les mails : http://a-pellegrini.developpez.com/tutoriels/css/email/

  3. #3
    Membre régulier Avatar de nico le noob
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 132
    Points : 101
    Points
    101
    Par défaut
    pas tres clair ? surement...

    la question est la suivante:

    - le client valide le formulaire
    - je recois le mail
    - la mise en page de cette reception est moche !

    j'aimerai recevoir ce fameux mail avec par exemple:

    - une image (logo)
    - et que le texte soit mis en forme(italique,texte en gras,etc..)

    en gros je ne comprend pas comment appliquer une feuille de style à mon script pour que la reception du mail soit mis en forme:

    - faut il l'envoyer dans le mail de retour avec le message ?
    - ou faut il y inclure un lien vers mon site (ex:http://monsite/index.php/styles/style.css).

    je met le script ci dessous index.php il contient le PHP et l'HTML, tu as surement une reponse a cette question.

    Merci pour le lien concernant le css d'envoi de mail je l'ai mis dans mes favoris," il ne me reste plus qu'à connaitre la façon de l'inserer à mon mail", je precise encore une fois que je n'ai aucune idée de l'endroit ou je doit mettre le CSS et que c'est ça la question de base que j'avais surement mal formulé.

    le code 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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    <?php
    if(!empty($_POST)){
    	extract($_POST);
    	$valid = true;
    	if(empty($nom)){
    		$valid=false;
    		$erreurnom="vous n'avez pas rempli votre nom";
    	}
    	if(!preg_match("/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i",$email)){
    		$valid=false;
    		$erreurmail = "votre email n'est pas valide";
    	}
    	if(empty($email)){
    		$valid=false;
    		$erreurmail="vous n'avez pas rempli votre mail";
    	}
    	if(empty($message)){
    		$valid=false;
    		$erreurmessage="vous n'avez pas rempli votre message";
    		}
     
    	if($valid){
    		$to = "nicolas-dupuy@live.fr";
    		$sujet = "contact du site";
    		if(mail($to,$sujet,$message)){
    			$erreur="votre message nous ai bien parvenu";
    			unset($nom);
    			unset($email);
    			unset($message);
    		}
    		else{
    			$erreur = "erreur:votre email n'a pas été envoyé";
    		}
    	}
    }
    ?>
     
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
    		<title>TEST</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    		<link rel="stylesheet" media="screen" type="text/css" title="css" href="css.css" />
    		<script type="text/javascript" src="jquery.js"></script>
    		<script type="text/javascript" src="texte.js"></script>
     
       </head>
       <body>
     
    		<div id="fond">
     
    			<img class="barre_h" src="images/barre_h.jpg" onclick="alert('Pourquoi cliques-tu sur cette image ?');"/>
    			<img class="barre_v" src="images/barre_v.png"/>
    			<img class="titre" src="images/titre.png" />
    			<img class ="logo" src="images/logo.png"/>
    			<img class="barre_n" src="images/barre_n.jpg"/>
    		<div id="btn">
    		<div id="fx"></div>
     
    			<img class="acheter" src="images/acheter.png" id="acheter" />
    			<img class="vendre" src="images/vendre.png" id="vendre" />
    			<img class="louer" src="images/louer.png" id="louer" />
    			<img class="gestion" src="images/gestion.png" id="gestion" />
    			<img class="infos" src="images/infos.png" id="infos" />
    			<img class="contact" src="images/contact.png" id="contact" />
    		</div>
    		<div id="text">
     
    		<!--
    			<p class="text1">111</p>
    			<P class="text2">222</p>
    			<p class="text3">333</p>
    			<p class="text5">555</p>
    			<p class="text6">
    		-->
    				<form method="post" action="index.php">
    				<label for="nom">nom: </label><br/>
    				<input type="text" name="nom" id="nom" value="<?php if(isset($nom))echo $nom;?>"/>
    				<span class="error-message"><?php if(isset($erreurnom)) echo $erreurnom; ?></span><br/>
     
    				<label for="email">email: </label><br/>
    				<input type="text" name="email" id="email"value="<?php if(isset($email))echo $email;?>"/>
    				<span class="error-message"><?php if(isset($erreurmail)) echo $erreurmail; ?></span><br/>
     
    				<label for="message">votre message: </label><br/>
    				<textarea name="message" id="message"/><?php if(isset($message))echo $message;?></textarea>
    				<span class="error-message"><?php if(isset($erreurmessage)) echo $erreurmessage; ?></span><br/>
     
    				<input type="submit" value="envoyer"/>
    				<?php 
    					if(isset($erreur)){echo"<p>$erreur</p>";}
    				?>
    				</form>
    			</p>
     
    		</div>
     
    		</div>
     
     
       </body>
    </html>
    Je sais que les admins ici sont plutôt compétant, merci de ton aide...

  4. #4
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Ce que je ne comprends pas c'est : qu'est ce que c'est que cette portion de code que tu nous montre ? Ce que j'ai déjà soulevé dans le 1er message.

    Tu nous montre une page web avec un formulaire et du PHP. C'est quoi ? Le formulaire qui te permet d'envoyer le mail ? Ou le mail lui même qui est censé être envoyé ?

    Dans le 1er cas ce code ne nous sert à rien. Montre nous le code de ton mail.

    Dans le 2eme cas il y a un problème : pas de PHP dans un mail, les webmails et autres logiciels de messagerie ne savent pas l'interpréter...


    Sinon je me répète : pour mettre du CSS dans un mail il faut utiliser l'attribut style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <img src="http://ton-site-hébergeant-limage/image.jpg" style="border:0" />
     
    <p style="font-weight:bold">du texte en gras</p>
    Il ne faut surtout pas utiliser de fichier CSS externe, et pas non plus la balise style dans l'entête car supprimé par certains webmails ou logiciels...

  5. #5
    Membre régulier Avatar de nico le noob
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 132
    Points : 101
    Points
    101
    Par défaut
    LOL, je te répond de mon tel j ai pas le net ici.

    Le code que je viens de t afficher c'est ma page "racine" de mon site test.

    Donc en fait le code de mon mail est afficher, il est générer par le php soit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if ($valid){
         $to = "monadressemail.tutu@fr";
         $sujet = "contact du site";
         If (mail($to,$sujet,$message)){
              $erreur="votre message nous ai bien parvenu";
              Unset($nom);
              Unset($Email);
              Unset($message);<---- c est ici que je doit mettre la balise HTML ?
    } 
         Else{
              $erreur = "erreur:votre Email n a pas été envoyé";
    }
    }
    je reprecise que je viens de t écrire ce message, script aussi avec le portable par manque de connexion alors ne fais pas attention aux majuscules sur unset, else et toute autres erreurs de syntaxe le vrai script est dans la page plus haut.

    Ps: j ai cru comprendre qu il fallait mettre une balise HTML entre les parenthèses de unset avec mes variables c'est bien ça ? Si oui sous quelle forme stp ?

    Merci

  6. #6
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Ok je comprends...

    Il faut rectifier la variable qui correspond au corps de ton message :

    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
    if ($valid){
         $to = "monadressemail.tutu@fr";
         $sujet = "contact du site";
     
        $message_misenforme = '<img src="http://ton-site-hébergeant-limage/image.jpg" style="border:0" />';
        $message_misenforme .= ' <p style="font-weight:bold">du texte en gras</p>';
        $message_misenforme .= ' <p style="font-weight:bold">'.$message.'</p>';
        $message_misenforme .= ' etc...';
     
         If (mail($to,$sujet,$message_misenforme)){
              $erreur="votre message nous ai bien parvenu";
              Unset($nom);
              Unset($Email);
              Unset($message);<---- non ce n'est pas ici qu'il faut mettre la balise HTML ?
    } 
         Else{
              $erreur = "erreur:votre Email n a pas été envoyé";
    }
    }

  7. #7
    Membre régulier Avatar de nico le noob
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 132
    Points : 101
    Points
    101
    Par défaut je...
    Enorme !!!!!

    je...je...je crois que je t'aime !!!

    XD !!!

  8. #8
    Membre averti Avatar de sayari.dev
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 142
    Points : 300
    Points
    300
    Par défaut
    Bonjour

    Il ne faut pas oublier d'utiliser les headers dans la fonction mail pour forcer le corps du mail à être interprété comme du HTML et non pas du simple texte

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $entete  = 'MIME-Version: 1.0' . "\r\n";
    $entete .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    mail($to,$sujet,$message_misenforme, $entete)

  9. #9
    Membre régulier Avatar de nico le noob
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 132
    Points : 101
    Points
    101
    Par défaut
    Merci beaucoup pour ton complément d'information

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/05/2012, 17h55
  2. [Débutant] Modifier le message envoyer par le PasswordRecovery
    Par dv-2008 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 14/12/2011, 10h46
  3. Modifier l'apparence des messages envoyés par unittest
    Par rambc dans le forum Général Python
    Réponses: 1
    Dernier message: 15/12/2010, 17h22
  4. Réponses: 1
    Dernier message: 13/05/2010, 19h48
  5. comment suivre l'etat de mon message envoyé
    Par louzar dans le forum VBA Outlook
    Réponses: 7
    Dernier message: 24/07/2007, 11h52

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