I'm using phpnuke's newsletter system to send out trade alert emails to our clients, these are time sensitive and it's taking like 15 plus minutes to send to about 500 total users. The email goes to the subscribers, then to a list of trial users. Here is the function.
Here's the code:
function newsletter_send($title, $content) {
global $user_prefix, $sitename, $dbi, $nukeurl, $adminmail;
$from = $adminmail;
$subject = "[$sitename Newsletter]: ".stripslashes($title)."";
$content = stripslashes($content);
$content = "$sitename "._NEWSLETTER."\n\n\n$content\n\n- $sitename "._STAFF."\n\n\n\n\n\n"._NLUNSUBSCRIBE."";
$result = sql_query("select user_email from ".$user_prefix."_users where newsletter='1'", $dbi);
$result2 = sql_query("select user_email2 from ".$user_prefix."_users where newsletter='1'", $dbi);
while(list($user_email) = sql_fetch_row($result, $dbi)) {
mail($user_email, $subject, $content, "From: $from\nX-Mailer: PHP/" . phpversion());
while(list($user_email2) = sql_fetch_row($result2, $dbi))
mail($user_email2, $subject, $content, "From: $from\nX-Mailer: PHP/" . phpversion());
}
///////
$conn = mysql_connect ("localhost", "username", "password");
mysql_select_db ("fxtradercommunity_userList", $conn);
$timeStamp = time ();
$expire = $timeStamp-'1209600';
$emails = mysql_query("SELECT visitormail FROM trialUsers WHERE signupDate >= '$expire'");
while ($sendemail = mysql_fetch_array($emails)){
$email = $sendemail["visitormail"];
mail($email, $subject, $content, "From: $from\nX-Mailer: PHP/");
}
///////
I added the last command to pull from a separate database of free trial users. However, we were still having time prblems before I added this.