php - Swift Mailer sending only last row of table -
i pulling email addresses database table , iterating through them send email. if comment out line $mailer->send($message); email sent out, last row in table. if leave line in, email sent recipients, sends twice last row in table. doing wrong?
<?php // pull data database $query = "select emailaddress, firstname, lastname test_table"; if ($result = mysqli_query($link, $query)) { /* put data array */ while($row = mysqli_fetch_assoc($result)) { $swimmers[] = $row; } /* free result set */ mysqli_free_result($result); } /* close connection */ mysqli_close($link); /* create replacements array */ $replacements = array(); foreach ($swimmers $swimmmer) { $replacements[$swimmer["emailaddress"]] = array ( "{firstname}" => $swimmer["firstname"], "{lastname}" => $swimmer["lastname"], "{fullname}" => ($swimmer["firstname"] . ' ' . $swimmer["lastname"]) ); } /* create transport */ $transport = swift_smtptransport::newinstance() ; // create mailer using created transport $decorator = new swift_plugins_decoratorplugin($replacements); $logger = new swift_plugins_loggers_echologger(); $mailer = swift_mailer::newinstance($transport); $mailer->registerplugin($decorator); $mailer->registerplugin(new swift_plugins_loggerplugin($logger)); // create message $message = swift_message::newinstance() // give message subject ->setsubject('stuff') // set address associative array ->setfrom(array('stuff' => 'stuff')) // give body ->setbody('stuff', 'text/html') // , optionally alternative body ->addpart('stuff', 'text/plain') // optionally add attachments ->attach(swift_attachment::frompath('stuff')) ; // set addresses associative array foreach($swimmers $swimmer) { echo $swimmer['emailaddress']; $message->setto($swimmer["emailaddress"], $swimmer["fullname"]); //$mailer->send($message); } echo $logger->dump(); // pass variable name send() method if (!$mailer->send($message, $failures)) { echo "failures:"; print_r($failures); } ?>
with function (after echo $logger->dump();)
if (!$mailer->send($message, $failures)) you resend last email
the $mailer->send($message, $failures) send email if inside if eval
Comments
Post a Comment