Mail format HTML qui arrive en format texte

Fermé
Dead - 16 nov. 2010 à 14:17
 Webm - 1 janv. 2011 à 19:36
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>

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


5 réponses

arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
16 nov. 2010 à 14:19
Où est le code PHP de l'envoi du mail?
0
Je ne savais même pas qu'il fallait en mettre :-/ Pourquoi ? Je ne touche pas un poil de PHP
0
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
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 jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
17 nov. 2010 à 04:45
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
Cela veut dire que je ne vais pas me servir d'une messagerie normale ?
0
Lord Zero Messages postés 459 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 15 juin 2018 115
17 nov. 2010 à 11:46
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
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 lundi 18 octobre 2010 Statut Membre Dernière intervention 15 juin 2018 115
Modifié par Lord Zero le 17/11/2010 à 17:52
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
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 lundi 18 octobre 2010 Statut Membre Dernière intervention 15 juin 2018 115
18 nov. 2010 à 08:24
oui mais donne ton code que je regarde
0
Il est dans mon premier message ;)

Merci encore pour le temps passer sur mon soucis !
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
19 nov. 2010 à 04:55
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
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