Mail format HTML qui arrive en format texte

Dead -  
 Webm -
Bonjour à tout le monde !

J'ai donc un soucis : lorsque je veux envoyer un mail au format HTML, ce dernier part bien, mais arrive à destination au format texte, le code n'est pas du tout interprété...
J'ai testé en envoyant ce mail via Gandi Webmail et Zimbra Free, vers l'un puis vers l'autre. Ça m'a suffit à en conclure que j'avais un soucis.
Je vous contrebalance une version le code avec une version light de son conteu, si vous pouvez m'aider :-/

D'avance merci !

************************************************************************

<html>
<head>
<title>titre de la page</title>

<style type="text/css">
body{
background-color: #31435A;
background-attachment: fixed;
background-image: url(img/bckg.jpg);
background-position: top left;
background-repeat: repeat;
}
#logo{
width: 210px;
height: 119px;
background-image: url(img/logo.jpg);
background-repeat: no-repeat;
position: relative;
margin-left: auto;
margin-right: auto;
}
.contenu{
background-color: black;
width: 500px;
height: auto;
position: relative;
margin-left: auto;
margin-right: auto;
padding: 7px 7px 7px 7px;
color:#FFFFFF;
}
.text p{
text-align: left;
font-family:Verdana;
font-size:12px;
color:#cccccc;
}
.text a{
font-family:Verdana;
font-size:12px;
color:#45A72C;
text-decoration: underline;
}
.text a:hover{
font-family:Verdana;
font-size:12px;
color:#45A72C;
text-decoration:none;
}
.right{
text-align: right !important;
}
.html{
margin-left: auto;
margin-right: auto;
position: relative;
width:-moz-max-content;
}
.advert p{
font-family:Verdana;
font-size:8px;
color:#cccccc;
}
.advert a{
font-family:Verdana;
font-size:8px;
color:#45A72C;
text-decoration: underline;
}
.advert a:hover{
font-family:Verdana;
font-size:8px;
color:#45A72C;
text-decoration:none;
}
.events{
font-weight: bold;
color:#45A72C;
font-size: 10px;
}
</style>

</head>

<body>
<div class="html"><span class="advert"><p>Si vous ne parvenez pas à lire ce mail correctement, vous pourrez le visionner sur internet en cliquant ici</p></span></div>
<br/>
<br/>
<div id="logo"></div>
<div class="contenu">
<span class="text">
<p>texte</p>
</span>
</div>

</body>

</html>

************************************************************************


A voir également:

5 réponses

arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Où est le code PHP de l'envoi du mail?
0
Dead
 
Je ne savais même pas qu'il fallait en mettre :-/ Pourquoi ? Je ne touche pas un poil de PHP
0
Paul
 
il faut que tu indique en php le content type
$From .= "Content-type: text/html; charset= iso-8859-1\n";;
vu sur http://www.asp-php.net/ressources/bouts_de_code.aspx?id=35

vu ton exemple, tu peut aussi envoyer l'email en html+texte
il y a des exemples sur le net, ex : http://www.progmatique.fr/article-118-Php-comment-envoyer-email.html

++
0
Dead
 
Aaargh, je suis un boulet, je n'y comprends pas grand chose. Donc ce n'est plus de l'HTML brut, mais de l'HTML mis dans du PHP ?
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Ce n'est pas du html mis dans du PHP.
Le PHP est un langage de traitement côté serveur. Il traite les données et restitu au client (le navigateur) du code html.

L'envoi de mail se fait avec du PHP.
0
Dead
 
Cela veut dire que je ne vais pas me servir d'une messagerie normale ?
0
Lord Zero Messages postés 459 Date d'inscription   Statut Membre Dernière intervention   115
 
Exemple de mail au format HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=latin1" http-equiv="Content-Type" />
<title>Commande Envoie</title>
</head>

<body>
<?php 
session_start();
//Connexion à la base de données
mysql_connect('localhost', 'root', '');
mysql_select_db('mcad2010');

     $headers ='From: '.$_SESSION['nom'].'<commande@blabla.com>'."\n"; 
     $headers .='Reply-To: '.$_SESSION['mail'].''."\n"; 
     $headers .='Content-Type: text/html; charset="iso-8859-1"'."\n"; 
     $headers .='Content-Transfer-Encoding: 8bit'; 
// La requête sql pour récupèrer les messages de la page actuelle.
$retour_messages=mysql_query('SELECT * FROM panier WHERE id = "'.$_SESSION['id'].'"');

while($donnees_messages=mysql_fetch_assoc($retour_messages)) // On lit les entrées une à une grace à une boucle
{
$message .='<html><head><title>Commande</title></head><body><table bgcolor="silver" style="color:purple" width="900" align="center" border="1">
<tr>
<th>Nom</th>
<th>Prenom</th>
<th>Societe</th>
<th>Tel. Fix</th>
<th>Tel. Port</th>
<th>Mail</th>
<th>Ref</th>
<th>Designation</th>
<th>Quantité</th>
<th>Prix</th>
</tr>
<tr>
<td>'.$_SESSION['nom'].'</td>
<td>'.$_SESSION['prenom'].'</td>
<td>'.$_SESSION['societe'].'</td>
<td>'.$_SESSION['telfix'].'</td>
<td>'.$_SESSION['telport'].'</td>
<td>'.$_SESSION['mail'].'</td>
<td>'.$donnees_messages['Ref'].'</td>
<td>'.$donnees_messages['Designation_du_site'].'</td>
<td>'.$donnees_messages['Quantite'].'</td>
<td>'.$donnees_messages['Prix'].'</td>
</tr>
</table>
</body></html><br/>';
}

 

     if(mail('bla@blabla.com', 'Commande', $message, $headers)) 
     { 
          header('location:fin_commande.php'); 
     } 
     else 
     { 
          echo 'Le message n\'a pu être envoyé'; 
     } 
?> 

</body>

</html>
0
Dead
 
Merci pour cet exemple mais si j'ai bien compris, celui qui a fait ce mail y appel des infos récupérées dans une bdd, c'est à mon sens comme je le comprends, la seule raison pour laquelle il utilise du PHP. Cependant, il semble primordial d'en utiliser dans tous les cas de mail en HTML.
Cependant, la seule partie qui semble m'intéresser serait celle-ci :

while($donnees_messages=mysql_fetch_assoc($retour_messages)) // On lit les entrées une à une grace à une boucle
{
$message .='<html><head><title>Commande</title></head><body>

blablablablablablablablablablablablablablablablablablablablablablablablablablablabla
blablablablablablablablablablablablablablablablablablablablablablablablablablablabla
blablablablablablablablablablablablablablablablablablablablablablablablablablablabla
blablablablablablablablablablablablablablablablablablablablablablablablablablablabla

</body></html><br/>';
}

Je me trompe ou bien ?
0
Lord Zero Messages postés 459 Date d'inscription   Statut Membre Dernière intervention   115
 
dans cette partie je récupere chaque ligne mon tableau, et je concatene ma variable pour envoyer toute les ligne de mon tableau

cependant a la place de mes variable qui récupere les ligne j'aurais pu mettre les info d'un formulaire a l'aide de la méthode POST
exemple :
$message .='<html><head><title>Commande</title></head><body><table bgcolor="silver" style="color:purple" width="900" align="center" border="1"> 
<tr> 
<th>Nom</th> 
<th>Prenom</th> 
<th>Societe</th> 
<th>Tel. Fix</th> 
<th>Tel. Port</th> 
<th>Mail</th> 
<th>Ref</th> 
<th>Designation</th> 
<th>Quantité</th> 
<th>Prix</th> 
</tr> 
<tr> 
<td>'.$_POST['nom'].'</td> 
<td>'.$_POST['prenom'].'</td> 
<td>'.$_POST['societe'].'</td> 
<td>'.$_POST['telfix'].'</td> 
<td>'.$_POST['telport'].'</td> 
<td>'.$_POST['mail'].'</td> 
</tr> 
</table> 
</body></html><br/>'; 
} 

0
Dead
 
Personnellement, le contenu de mon mail se contente d'afficher des images et du textes simple habillé en CSS. Voilà tout. Mais si je comprends bien, je dois tout de même passer par le

$message .='

pour que le mail soit bien reçu sous sa forme html. C'est ça ?
0
Lord Zero Messages postés 459 Date d'inscription   Statut Membre Dernière intervention   115
 
oui mais donne ton code que je regarde
0
Dead
 
Il est dans mon premier message ;)

Merci encore pour le temps passer sur mon soucis !
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Le code de ton premier message est du html. Le html ne permet en rien d'envoyer des mail. C'est le PHP qui le fait. Où est ton code php?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Webm
 
voici un site génial
http://ww17.mynetactu.net/index.php?module=membres&action=mail_html
j'ai déjà éssayé et ça marche
-1