Envoi d'email avec variables
Bonjour,
N'étant pas un habitué du forum, si vous jugez qu'il faut déplacer ma question, je vous en serai reconnaissant.
Voilà, j'ai crée du code PHP pour envoyer des emails, en y introduisant des fichiers HTML, sans aucune difficulté. Ces fichiers sont appelés par file_get_contents() ou file()...
La difficulté est apparue lorsque j'ai introduit des variables dans le fichier HTML, déclarées préalablement dans le code PHP.
Voici un exemple, dans lequel j'essaie d'envoyer dans le HTML la variable $nom, mais j'obtiens ceci : Bonjour "$nom"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
<?php
/* Déclaration de variables */
$Fic_Html = 'mailing2.htm';
$Societe = 'ma_ste';
$Expediteur ='contact@mon_site.fr';
$nom = 'invité';
//== HEADERS DU MAIL
//============================
$headers = 'MIME-Version: 1.0'."\n";
$headers .= 'Content-type:text/html; charset=ISO-8859-1'."\r\n";
$headers .= 'From: '.$Societe.' <'.$Expediteur.'>'."\n";
$headers .= "\r\n";
//== MESSAGE HTML ==
$msg ='"'; //== guillemets pour encapsuler le code HTML ==
$msg .= file_get_contents($Fic_Html); //== essayé aussi: file($Fic_Html) ==
$msg .='"'; //== guillemet de fermeture du code HTML
$msg .= "\r\n";
//== les guillements de début et de fin c'est pour la forme mais ils ne changent rien
//== bien au contraire, ils apparaissent à l'affichage.
//== FEED BACK D\'ENVOI DU MAIL
//============================
//== if(mail($dest, $objet, $msg, $headers))
echo $msg."<br />";
?> |
Pourtant si je copie directement le contenu du fichier HTML dans la variable $msg, cela fonctionne :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
<?php
/* Déclaration de variables */
$Fic_Html = 'mailing2.htm';
$Societe = 'ma_ste';
$Expediteur ='contact@mon_site.fr';
$nom = 'invité';
//== HEADERS DU MAIL
//============================
$headers = 'MIME-Version: 1.0'."\n";
$headers .= 'Content-type:text/html; charset=ISO-8859-1'."\r\n";
$headers .= 'From: '.$Societe.' <'.$Expediteur.'>'."\n";
$headers .= "\r\n";
//== MESSAGE HTML ==
$msg ="
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
<html>
<head>
<meta content='text/html; charset=ISO-8859-1' http-equiv=Content-Type>
<style>
span.texte2 { font-family: verdana, arial; font-size: 9.0pt; color:#666666; text-decoration:none;}
a.lien1 { list-style-type:none; font-family: verdana, arial; font-size: 9.0pt; color: #0088D1; text-decoration: underline;}
a.lien1:link {}
a.lien1:hover { text-decoration: underline;}
</style>
</head>
<body bgColor='#ffffff'>
<div align=center>
<table cellpadding=0 width=700pt align=center>
<tr>
<td align=right style='border-style:none;'>
<div style='margin:0 20px 5px 0; text-align:center;'>
<span class='texte2'>Bonjour <b>".$nom."</b>, <i>si vous ne parvenez pas à lire cet email, consultez
<a class='lien2' href='http://www.mon_site.fr'> la version en ligne</i></a></span>
</div>
</td>
</tr>
</table>
</div>
</body>
</html>";
$msg.="\r\n";
//== FEED BACK D\'ENVOI DU MAIL
//============================
//== if(mail($dest, $objet, $msg, $headers))
echo $msg."<br />";
?> |
Ne vous moquez pas, c'est certainement basic comme question pour vous, mais étant débutant, j'ai beau me documenter, impossible de trouver une solution.
Alors MERCI à vous de bien vouloir me donner un peu de votre temps.
Cdt,
Raphaël
Résolu : envoi d'emails avec variables
Un grand merci à toi, amoiraud.
J'avoue que je ne connaissais pas cette solution.
Autrement, concernant la méthode que j'utilise pour envoyer des emails avec des variables, qu'est-ce que tu en penses ?
Existe-il d'autres méthodes plus appropriées ?
Encore merci,
Raphaël