Intégrer une donnée mysql dans un mailing php [Résolu]

graig083 17 Messages postés vendredi 9 mai 2008Date d'inscription 30 décembre 2010 Dernière intervention - 30 déc. 2010 à 16:21 - Dernière réponse : graig083 17 Messages postés vendredi 9 mai 2008Date d'inscription 30 décembre 2010 Dernière intervention
- 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
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
cs_ludwig59 128 Messages postés lundi 21 avril 2008Date d'inscription 6 mai 2011 Dernière intervention - 30 déc. 2010 à 16:28
3
Merci
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".

Merci cs_ludwig59 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de cs_ludwig59
graig083 17 Messages postés vendredi 9 mai 2008Date d'inscription 30 décembre 2010 Dernière intervention - 30 déc. 2010 à 16:39
0
Merci
Génial ! Je ne connaissais pas cette technique, ça marche parfaitement.
Mille merci et excellentes fêtes de fin d'année à tous.
Commenter la réponse de graig083

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.