fonction mail et CSS

fonction mail et CSS - PHP - Programmation

Marsh Posté le 25-06-2006 à 11:31:24    

bonjour,
j'ai quelques difficutés :
je voudrais inserer un fichier CSS dans une variable, j'ai pour cela ultisé la fonction "file_get_contents". tout semble marcher mais j'ai fais un test avec un adresse hotmail et la le css n'est pas pris en compte dans le message dans certaines conditions.
 
si je fais :  

Code :
  1. <?
  2. $message='<html><head><style type="text/css">p{font:red} </style></head><body><p>'.$msg.'</p></body></html>';
  3. ?>

... ca marche ! :)  
 
si je fais :  

Code :
  1. <?
  2. $message='<html><head><style type="text/css">p{font:red} '.file_get_contents('styles.css').' </style></head><body><p>'.$msg.'</p></body></html>';
  3. ?>

et que le fichier css est vide... ca marche ! (le style  p marche):)  
 
mais si je fais :  

Code :
  1. <?
  2. $message='<html><head><style type="text/css">p{font:red} '.file_get_contents('styles.css').' </style></head><body><p>'.$msg.'</p></body></html>';
  3. ?>

et que dans le fichier css il ya :

Code :
  1. .couleur1{  font-family: Arial, Helvetica, sans-serif; font-size: 13px;margin: 0;padding: 0;color:#FF0066; }

... du coup ni le style present sur le fichier php, ni celui dans le css ne sont pris en compte. :(  
 
et ça ne fonctionne pas non plus  si je fais simplement : :(  

Code :
  1. <style type="text/css">'.file_get_contents('styles.css').' </style>

 
 
pour info voici mon entete :

Code :
  1. <?
  2. $entete  = "MIME-Version: 1.0\r\n";
  3. $entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
  4. $entete .="From: contact@site.com<site@300gp.ovh.net>\nX-Mailer:PHP";
  5. $entete .="Reply-to: contact@site.com ";
  6. ?>


 
d'ou cela peut-il venir ?
que faudrait-il que je fasse pour pouvoir importer ce fichier et que les css fonctionnent correctement pour pour toutes les webmails supportant le html?
 
merci de votre aide


Message édité par attentio le 25-06-2006 à 11:38:49

---------------
L'ordinateur a de la mémoire mais aucun souvenir ...
Reply

Marsh Posté le 25-06-2006 à 11:31:24   

Reply

Marsh Posté le 26-06-2006 à 10:59:05    

Pourquoi ne pas simplement utiliser un include ?

Reply

Marsh Posté le 26-06-2006 à 12:35:03    

apres moults essais, le probleme ne vient pas de l'import de ce fichier mais des sauts de ligne
 

Code :
  1. <?
  2. $styles_css='.couleur1{  font-family: Arial, Helvetica, sans-serif; } p{font:red}';
  3. $message='<html><head><style type="text/css">'.nl2br($styles_css).'</style></head><body><p>'.$msg.'</p></body></html>';
  4. ?>

... marche  :)  
 
mais ...

Code :
  1. <?
  2. $styles_css='
  3. .couleur1{  font-family: Arial, Helvetica, sans-serif; }
  4. p{font:red}';
  5. $message='<html><head><style type="text/css">'.nl2br($styles_css).'</style></head><body><p>'.$msg.'</p></body></html>';
  6. ?>

... ne marche pas  :(  
 
je ne comprends pas pourquoi  :??:


Message édité par attentio le 26-06-2006 à 12:35:55

---------------
L'ordinateur a de la mémoire mais aucun souvenir ...
Reply

Marsh Posté le 26-06-2006 à 14:12:19    

Bin nl2br de

Code :
  1. .couleur1{  font-family: Arial, Helvetica, sans-serif; } p{font:red}


donne

Code :
  1. .couleur1{  font-family: Arial, Helvetica, sans-serif; } p{font:red}


 
Tandis que nl2br de

Code :
  1. .couleur1{  font-family: Arial, Helvetica, sans-serif; }
  2. p{font:red}


donne

Code :
  1. .couleur1{  font-family: Arial, Helvetica, sans-serif; }
  2. <br/>
  3. p{font:red}


 
Et les br entre balises style [:mlc]


Message édité par anapajari le 26-06-2006 à 14:12:58
Reply

Marsh Posté le 26-06-2006 à 14:17:44    

oui ... mais même sans le nl2br j'ai le même probleme !
 
merci infiniment  de votre aide


---------------
L'ordinateur a de la mémoire mais aucun souvenir ...
Reply

Marsh Posté le 28-06-2006 à 23:21:31    

je vais pas tout t'envoyé le code mais je pense que ca va d'éclaircir
grace à ces petit bout les plus important !
 
 
$mail_header = "<html>
<head>
<link href='http://www.tonsite.com/styles.css' rel='stylesheet' type='text/css'>
</head>
<body>
";
 
$mail_message = $mail_header;
$mail_message.= $mail_texte;
$mail_message.= $mail_footer;
 
$okmail = mail($mailclient, $titre, $mail_message,$headers);

Reply

Marsh Posté le 01-07-2006 à 12:25:14    

Il m'arrive de faire régulièrement des mailings pour des grands comptes et à ce journ aucun prestataire chargé d'envoyer les mails n'a été en mesure de prendre en compte le CSS de cette façon. Les possibilités sont beaucoup plus limitées.

Reply

Marsh Posté le 01-07-2006 à 18:26:31    

je peu t'assurer que j'utilise cette méthode pour avoir de belle commande et facture par mail à la charte de mes sites.
et le résultat est niquel ! il te suffit juste de créer ton mail en utilisant la feuille de styles de ton site.

Reply

Marsh Posté le 01-07-2006 à 18:30:20    

dogmongo a écrit :

je peu t'assurer que j'utilise cette méthode pour avoir de belle commande et facture par mail à la charte de mes sites.
et le résultat est niquel ! il te suffit juste de créer ton mail en utilisant la feuille de styles de ton site.


 
ah oué ? Tu rigoles là j'espère.  :heink:  
 
Chez moi les mails, c'est mode texte seulement déjà. Quand on envoie une facture, c'est PDF quasi-obligé. le reste c'est nawak.  :o  
 
 

Reply

Marsh Posté le 01-07-2006 à 18:37:24    

ca c'est ton choix ! tu configure ton logiciel de messagerie comme tu le veux, ne juge pas les codes selon tes propres choix de configuration.

Message cité 1 fois
Message édité par dogmongo le 01-07-2006 à 18:39:48
Reply

Marsh Posté le 01-07-2006 à 18:37:24   

Reply

Marsh Posté le 01-07-2006 à 18:52:56    

dogmongo a écrit :

ca c'est ton choix ! tu configure ton logiciel de messagerie comme tu le veux, ne juge pas les codes selon tes propres choix de configuration.


 
Tes CSS seront pas interprêtés par PLEIN de client mails, même si ceux-ci acceptent le HTML.  :pfff:  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed