Mass mailing procedure
Posted: Tue Jan 29, 2008 11:36 am
I currently use this way:
Is this a "good" method? Would it be better to use something like a batchsend instead? e.g.:
If my current set-up is bad and it is better to use batchsend, how would you use Decorator or AntiFlood plugins?
Many thanks in advance!
Code: Select all
// loop
do {
// log status of delivery, e.g. save data in database
$insert_sql = sprintf("INSERT INTO xxxxxxxxxx");
$result = mysql_query($insert_sql, $data);
$replacements = array(
$para_useremail => array("{WEBSITE_URL}" => $website_url, "{MESSAGE}" => $para_message)
);
// send email to website contact
$swift->attachPlugin(new Swift_Plugin_Decorator($replacements), "decorator");
$sent = $swift->send($message, $para_useremail, $mail_emailsource); // Try sending the email
if(!$sent) {
// error sending
$para_status = ":: SENDFAILED";
$log =& Swift_LogContainer::getLog();
$para_description = $log->dump(true);
$update_sql = sprintf("UPDATE xxxxx");
$result = mysql_query($update_sql, $data);
}
else {
// send was successful
$update_sql = sprintf("UPDATE xxxxx");
$result = mysql_query($update_sql, $data);
}
} while ($row_subscriber_set = mysql_fetch_assoc($subscriber_set));
Code: Select all
$recipients =& new Swift_RecipientList();
do {
$recipients->addTo($para_useremail, $para_username);
} while ($row_subscriber_set = mysql_fetch_assoc($subscriber_set));
$swift=& new Swift_BatchMailer($swift);
$swift->send($message, $recipients, new Swift_Address($mail_emailsource, "Our Name");
// once sent is done, use $swift->getFailedRecipients(); result to update database
Many thanks in advance!