Fonction Mail PHP - (Intégration du css)

emiliengbd Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   -  
Snox5 Messages postés 1482 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à tous,
j’expérimente en ce moment, l'envois de mails via PHP.
Voici un code d'exemple trouvé sur OpenClassrooms :

<?php
$mail = 'weaponsb@mail.fr'; // Déclaration de l'adresse de destination.
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui présentent des bogues.
{
 $passage_ligne = "\r\n";
}
else
{
 $passage_ligne = "\n";
}
//xn--=====dclaration-gnb des messages au format texte et au format HTML.
$message_txt = "Salut à tous, voici un e-mail envoyé par un script PHP.";
$message_html = "<html><head></head><body><b>Salut à tous</b>, voici un e-mail envoyé par un <i>script PHP</i>.</body></html>";
//==========

//=====Lecture et mise en forme de la pièce jointe.
$fichier   = fopen("image.jpg", "r");
$attachement = fread($fichier, filesize("image.jpg"));
$attachement = chunk_split(base64_encode($attachement));
fclose($fichier);
//==========

//xn--=====cration-heb de la boundary.
$boundary = "-----=".md5(rand());
$boundary_alt = "-----=".md5(rand());
//==========

//xn--=====dfinition-gkb du sujet.
$sujet = "Hey mon ami !";
//=========

//xn--=====cration-heb du header de l'e-mail.
$header = "From: \"WeaponsB\"<weaponsb@mail.fr>".$passage_ligne;
$header.= "Reply-to: \"WeaponsB\" <weaponsb@mail.fr>".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
//==========

//xn--=====cration-heb du message.
$message = $passage_ligne."--".$boundary.$passage_ligne;
$message.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary_alt\"".$passage_ligne;
$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
//=====Ajout du message au format texte.
$message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//==========

$message.= $passage_ligne."--".$boundary_alt.$passage_ligne;

//=====Ajout du message au format HTML.
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========

//=====On ferme la boundary alternative.
$message.= $passage_ligne."--".$boundary_alt."--".$passage_ligne;
//==========



$message.= $passage_ligne."--".$boundary.$passage_ligne;

//=====Ajout de la pièce jointe.
$message.= "Content-Type: image/jpeg; name=\"image.jpg\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: base64".$passage_ligne;
$message.= "Content-Disposition: attachment; filename=\"image.jpg\"".$passage_ligne;
$message.= $passage_ligne.$attachement.$passage_ligne.$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne; 
//========== 
//=====Envoi de l'e-mail.
mail($mail,$sujet,$message,$header);

//==========
?>


Ma question est la suivante : comment styliser le
$message_html = "<html><head></head><body><b>Salut à tous</b>, voici un e-mail envoyé par un <i>script PHP</i>.</body></html>";
Car je n'y parvient pas.
Merci d'avance.
A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Visiblement tu l'utilises déjà...
//=====Ajout du message au format HTML.
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========


0
emiliengbd Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   43
 
j'ai pas bien compris tu peux m'expliquer plus précisément, je débute en php.
Merci
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > emiliengbd Messages postés 70 Date d'inscription   Statut Membre Dernière intervention  
 
C'est plutôt à toi de noys expliquer... que se passe-t-il exactement ?
0
emiliengbd Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   43 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
EN GROS : J'utilise un fichier PHP pour envoyer un mail, dans ce fichier, ce trouve le contenue de mon mail, codé en HTML.
Donc jusque la j'y arrive, mais je souhaiterai maintenant stylisée le code HTML de mon Mail via du CSS, et c'est la que ça bloque.

Impossible d’intégré du style directement dans les balises, imaginons je que veuille envoyer ceci :
<p style="font-family: Arial">Salut CCM</p>

Impossible car cela créer des bugs. En fait les guillemets de la balise
<p style="font-family: Arial">
interférent avec les guillemets du code PHP servant à intergrer le code HTML :
$message_html = "<html><head></head><body><b>Salut à tous</b>, voici un e-mail envoyé par un <i>script PHP</i>.</body></html>";

Cela périme tout le code HTML, qui ne s'affiche pas sur mon mail une fois envoyé, ou alors cela périme tout le code PHP rendant le fichier inaccessible via un navigateur...

J'ai ensuite essayer une technique plus classique en utilisant ceci :
<link rel="stylesheet" type="text/css" href="style.css">
encore une fois, échec, peut importe l'endroit ou je place ce petit bout de code.

J'ai même essayer un système de
include 'contenu-mail.php';
Echec.

DONC MA QUESTION : Comment doi-je m'y prendre pour styliser mon Mail via un code CSS. J'éspère être le plus clair possible.
Merci d'avance.
0
Snox5 Messages postés 1482 Date d'inscription   Statut Contributeur Dernière intervention   213 > emiliengbd Messages postés 70 Date d'inscription   Statut Membre Dernière intervention  
 
Salut,
Et avec un caractère d'échappement
\
avant les guillemets ?
par exemple :
 echo 'j\'aime manger des kiwis';

+++
0
emiliengbd Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   43 > Snox5 Messages postés 1482 Date d'inscription   Statut Contributeur Dernière intervention  
 
C'est a dire ? Peut tu me montrer un exemple ?
Merci.
0