bonjour à tous!
je suis confronté à un pb depuis ce matin. en fait je travail en ce moment sur un peit projet de newsletter à envoi automatique.
pour cela lorsque l'admin saisi un message et le poste, on recupere dans la table des clients tous les comptes ayant l'option newsletter activé. on construit ensuite un message pour chacun et l'insere alors dans la table newsletter_mails.
un systeme de cron sera alors declenché pour envoyé les mails tous les 5s en ssupprimant au fur et à mesure ceux envoyé. voilà pour le principe.
mais au moment de l'insertion des données dans la table 'newsletter_mails', ce message d'erreur apparait:
Cannot add Mail. Empty value for [recepientMail]
voici le code de traitement de données
if(isset($_POST['msg_field'])&&($_POST['msg_field']!==''))
{
//on recupere les valeurs des champs
$sujet=mysql_escape_string($_POST['objet']);
$msg=mysql_escape_string(freeRTE_Preload($_POST['msg_field']));
$domain=$_SERVER['HTTP_HOST'];
//connexion à la bdd
$db = new IrivenSql($config['server'], $config['user'], $config['pass'], $config['database'], $config['tablePrefix']);
$db->Irivenconnect();
// la requete qu' on va envoyer :
$Query = 'SELECT user_name, Email, etat FROM newsletter_users WHERE etat ="Active"';
$results = $db->Irivenquery($Query);
while ($row = $db->Irivenfetch_array($results)) {
//instanciation de la newsletter
$newsletter= new newsletter();
$newsletter->addMysqlObg($db);
/*
///juste pour verifier que la requete precedent retourne des valeurs: ce qui est le cas
echo $row['user_name'];
echo $row['Email']; */
$recepient['name'] = $newsletter->$row['user_name'];
$recepient['Email'] = $newsletter->$row['Email'];
//construction des données à insérer dans la table newsletter_mails
$data=array( 'method' => 'SMTP',//deux valeurs possibles:'mail' ou 'smtp'
'From' => 'myadress@domain.com', //votre adresse email
'FromName' => 'My Name', // votre nom
'Host' => $domain, //le nom de domaine
'SMTPAuth' => true, //authentification smtp activéé
'Username' => 'myadress@domain.com',//votre adresse email de connexion smtp
'Password' => 'password', // votre mot de passe smtp
'recepientMail' => $recepient['Email'], //email du desinataire
'recepientName' => $recepient['name'],//nom du destinataire
'subject' => $sujet,// titre du message
'body' => $msg,//corps du message
'ContentType' => 'text/html', //type de message
'priority' => '3',// priorité, compris entre 1 et 5
'SendDate' => time(), //date en secondes
);
//on enregistre dans la bdd
$add=$newsletter->addMail($data);
if ($add===false) echo $newsletter->errorMsg;
//$db2->Irivenclose();
}
$db->Irivenclose();
}
Votre aide m'est précieuse
http://www.bbsecurit.com
Tout mal qui ne nous tue pas nous rend plus fort.NIETSCHES