Fonction Mail PHP - (Intégration du css)

Fermé
emiliengbd Messages postés 70 Date d'inscription jeudi 16 février 2017 Statut Membre Dernière intervention 29 août 2018 - Modifié par baladur13 le 17/02/2017 à 23:43
Snox5 Messages postés 1482 Date d'inscription samedi 25 juin 2016 Statut Contributeur Dernière intervention 11 juin 2021 - 18 févr. 2017 à 14:24
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 38391 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 22 janvier 2025 4 731
17 févr. 2017 à 16:08
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 jeudi 16 février 2017 Statut Membre Dernière intervention 29 août 2018 43
17 févr. 2017 à 18:53
j'ai pas bien compris tu peux m'expliquer plus précisément, je débute en php.
Merci
0
jordane45 Messages postés 38391 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 22 janvier 2025 4 731 > emiliengbd Messages postés 70 Date d'inscription jeudi 16 février 2017 Statut Membre Dernière intervention 29 août 2018
17 févr. 2017 à 20:20
C'est plutôt à toi de noys expliquer... que se passe-t-il exactement ?
0
emiliengbd Messages postés 70 Date d'inscription jeudi 16 février 2017 Statut Membre Dernière intervention 29 août 2018 43 > jordane45 Messages postés 38391 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 22 janvier 2025
17 févr. 2017 à 22:20
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 samedi 25 juin 2016 Statut Contributeur Dernière intervention 11 juin 2021 213 > emiliengbd Messages postés 70 Date d'inscription jeudi 16 février 2017 Statut Membre Dernière intervention 29 août 2018
Modifié par Snox5 le 17/02/2017 à 22:38
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 jeudi 16 février 2017 Statut Membre Dernière intervention 29 août 2018 43 > Snox5 Messages postés 1482 Date d'inscription samedi 25 juin 2016 Statut Contributeur Dernière intervention 11 juin 2021
17 févr. 2017 à 22:38
C'est a dire ? Peut tu me montrer un exemple ?
Merci.
0