Intégrer une donnée mysql dans un mailing php

Résolu
graig083 Messages postés 17 Date d'inscription vendredi 9 mai 2008 Statut Membre Dernière intervention 30 décembre 2010 - 30 déc. 2010 à 16:21
graig083 Messages postés 17 Date d'inscription vendredi 9 mai 2008 Statut Membre Dernière intervention 30 décembre 2010 - 30 déc. 2010 à 16:39
Bonjour à tous,
Je souhaite envoyer un mailing tout simple aux adhérents de mon asso. Les adresses mails sont enregistrées dans une base de données mysql et l'envoi du mailing se fait sous la forme d'un PHP.
Cela fonctionne très bien avec un texte standard, mais pour personnaliser le mailing j'aimerais intégrer le prénom des adhérents dans le corps du mail (les prénoms sont aussi stockés dans la base de données).

Voici le code de mon PHP :

$db = mysql_connect('xxx', 'xxxx', 'xxx');
mysql_select_db('xxx',$db);
$sql = 'SELECT * FROM xxx';
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());

$headers ='From: "xxx"<xxx>'."\n";
$headers .='Content-Type: text/html; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';

$message ='
<html>
<head>
<style type="text/css">
... je vous passe les détails ...
</style>
</head>

... ici le corps du mail dans lequel je voudrais intégrer le prénom ...

</html>';

while($row=mysql_fetch_array($req))
{
if(mail($row["email"], "sujet du mail", $message, $headers))
{
echo 'Le message a été envoyé à '.$row['email'].' ! ';
}
else
{
echo 'Le message n\'a pu être envoyé';
}
}
?>

J'ai essayé plusieurs combinaisons mais sans succès...
Par avance merci beaucoup de votre aide !
Graig

2 réponses

cs_ludwig59 Messages postés 128 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 6 mai 2011 2
30 déc. 2010 à 16:28
Bonjour

Tu peux mettre des chaines temporaires dans $message que tu remplace ensuite pas les valeurs du nom et prénom de la personne :

$message ='
<html>
<head>
<style type="text/css">
... je vous passe les détails ...
</style>
</head>

@@@PRENOM@@@ @@@NOM@@@  ... ici le corps du mail dans lequel je voudrais intégrer le prénom ...

</html>';

while($row=mysql_fetch_array($req))
{
 $message = str_replace("@@@NOM@@@",$row['nom'],$message); 
$message = str_replace("@@@PRENOM@@@",$row['prenom'],$message); 
if(mail($row["email"], "sujet du mail", $message, $headers))
{
echo 'Le message a été envoyé à '.$row['email'].' ! ';
}
else
{
echo 'Le message n\'a pu être envoyé';
}
}
?>



J'ai supposé que les champs dans ta base se nommé "nom" et "prenom".
3
graig083 Messages postés 17 Date d'inscription vendredi 9 mai 2008 Statut Membre Dernière intervention 30 décembre 2010
30 déc. 2010 à 16:39
Génial ! Je ne connaissais pas cette technique, ça marche parfaitement.
Mille merci et excellentes fêtes de fin d'année à tous.
0
Rejoignez-nous