PHPMailer

Fermé
Dundeefly Messages postés 15 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 3 avril 2010 - 14 janv. 2010 à 13:24
Dundeefly Messages postés 15 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 3 avril 2010 - 14 janv. 2010 à 22:25
Bonjour,

J'ai un problème d'envoi de mail par PHPMailer:
Dans la string $Mail -> AddAdress, je souhaiterais prendre l'adresse du destinataire dans une base de donnée, mais je ne trouve pas comment écrire la bonne string.

J'ai essayé $Mail -> AddAdress ('test@test.com') et cela fonctionne bien.
Mais au lieu de "test@test.com", je souhaiterais avoir quelque chose comme $res['Email'], qui est une des colonnes de ma BDD.

Une idée ?
A voir également:

8 réponses

scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
14 janv. 2010 à 21:24
// on récupère le 4e enregistrement de la table utilisateurs dans ta base de données
$req = mysql_query("SELECT email FROM utilisateurs WHERE id='4';");

// on fetch cet enregistrement en un tableau associatif
$res = mysql_fetch_array($req);

// on ajoute le champs 'email' de ce tableau associatif à ton objet PHPMailer
$Mail->AddAdress($res['email']);
0
Merci pour ta réponse, mais cela ne marche pas et je ne comprend pas pkoi. Voici mon code complet pour ce que je veux faire, c'est-à-dire, afficher un bon anniversaire à ola bonne personne (ca ca marche déjà) et en plus lui envoyer un mail avec un message (ca j'y arrive pas sauf si je mets directement une adresse mail:
$mail->AddAddress('exemple@exemple.com');

<?php
// On se connecte d'abord à MySQL :
mysql_connect("localhost", "site", "mot_de_passe");
mysql_select_db("anniversaire");

// On affiche les personnes du jour
$jour = date("d");
$mois = date("m");
$req = mysql_query("SELECT Nom, Prenom, Email FROM anniversaire WHERE Jour='$jour' AND Mois='$mois'");

$nb = mysql_num_rows($req); // Compte le nombre de lignes retournées

if($nb > 0)
{
while($res = mysql_fetch_array($req))

echo ' Bon anniversaire à <strong>'.$res['Prenom'].' '.$res['Nom'].'</strong><br />';
?>
<img hspace="10" src="../Images/png/annif.gif" style="width: 100px; height: 120px;" />
<?php
// Envoi d'un mail
require "../class.phpmailer.php";
$mail = new PHPmailer();
$mail->IsHTML(true);
$mail->From='remyseba@gmail.com';
$mail->AddAddress($res['Email']); ici que çà coince
$mail->AddReplyTo('remyseba@gmail.com');
$mail->Subject='Test';
$mail->Body='<html><body><center><font size=8>l\'image est juste en dessous</font><br>';
$mail->Body.='<img src="../Images/png/annif.gif" style="width: 100px; height: 120px;">';
$mail->Body.='</center></body></html>';

if(!$mail->Send()){
echo $mail->ErrorInfo;
}
else{
echo 'Mail envoyé avec succès';
}
unset($mail);
// Fin de l'envoi

}
else
{
echo "Pas d'anniversaire aujourd'hui";
}

// On se déconnecte de MySQL
mysql_close();
?>
0
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
14 janv. 2010 à 21:57
Juste avant la ligne où ça coince fait ceci :

echo $res['Email'];
exit();


Regarde si ça t'affiche bien l'email car peut-être que ça récupère un email vide.
0
Dundeefly Messages postés 15 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 3 avril 2010
14 janv. 2010 à 22:06
J'ai essayé, mais effectivement rien ne s'affiche, pourtant j'ai bien une adresse mail à l'emplacement du 14 janvier dans ma BDD. Par contre je l'ai peut-être mal configurée:

Champ Type Interclassement Attributs Null Défaut Extra Action
id int(11) Non
Nom varchar(20) latin1_swedish_ci Non
Prenom varchar(20) latin1_swedish_ci Non
Jour int(11) Non
Mois int(11) Non
Email varchar(30) latin1_swedish_ci Non

Sinon je vois pas.... (sniffff).
0
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
14 janv. 2010 à 22:09
Euh ton while il n'y a pas d'accolade ouvrant donc il ne s'applique que à l'echo qui le suit. Donc après le $res sera vide.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dundeefly Messages postés 15 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 3 avril 2010
14 janv. 2010 à 22:14
Je dois remettre la ligne du while avant mon require alors ?

Enfin je vais essayer, mais je crains....

Merci d'avance.
0
Dundeefly Messages postés 15 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 3 avril 2010
14 janv. 2010 à 22:17
En effet, j'ai ce message d'erreur:

Fatal error: Class 'PHPmailer' not found in /customers/bastinpaliseul.be/bastinpaliseul.be/httpd.www/Pages/Accueil.php on line 77

Je pige pas....
0
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
14 janv. 2010 à 22:19
Met ton require("phpmailer.php") tout en haut de ton code en dehors de toute fonction ou boucle itérative.

0
Dundeefly Messages postés 15 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 3 avril 2010
14 janv. 2010 à 22:25
Je l'ai déplacé en-dessous de :
// On se connecte d'abord à MySQL :
mysql_connect("localhost", "site", "mot_de_passe");
mysql_select_db("anniversaire");
require "../class.phpmailer.php";

Mais tjs pas: Erreur: Language string failed to load: instantiate

Grrrrrrrrrrrrrrrrrrr.....
0