{ // Select rows in queue ready for processing $curr_unix_time = time(); $query = "SELECT * FROM mailinglist_queue WHERE send_after <= '$curr_unix_time' ORDER BY message_id ASC"; if ($_GET['all'] != 1) $query .= " LIMIT 0, $config[queue_size]"; $result = mysql_query($query) or die("Query failed : " . mysql_error()); while ($row = mysql_fetch_assoc($result)) { // For each row in queue, get the message to be sent to it $message_query = "SELECT subject,message,format FROM mailinglist_messages WHERE id = '$row[message_id]'"; $message_result = mysql_query($message_query) or die("Query failed : " . mysql_error()); $message_row = mysql_fetch_assoc($message_result); // send message to address and delete from queue $consume = new SMLmailer; $consume->mail_to = $row[address]; $consume->mail_from = $config['owner_email']; $consume->subject = $message_row[subject]; $consume->message = $message_row[message]; $consume->is_HTML = ($message_row[format] == "html") ? true:false; $consume->use_SMTP = ($config[use_SMTP] == 1) ? true:false; $consume->send(); // mail sent, remove from queue $delete_query = "DELETE FROM mailinglist_queue WHERE message_id = '$row[message_id]' AND address = '$row[address]'"; $delete_result = mysql_query($delete_query) or die("Query failed : " . mysql_error()); } // query queue for latest total $count_query = "SELECT COUNT(*) FROM mailinglist_queue WHERE send_after <= '$curr_unix_time'"; $count_result = mysql_query($count_query) or die("Query failed : " . mysql_error());
include('SMLmailer.class.php'); if (get_magic_quotes_gpc() Or get_magic_quotes_runtime) // Quotes in the message are automatically being escaped { $message = stripslashes($_POST[message]); $subject = strip_tags(stripslashes($_POST[subject])); } else { $message = $_POST[message]; $subject = strip_tags($_POST[subject]); } $subject = "Simple Mailing List Test Message: " . $subject; $ownertest = new SMLmailer; $ownertest->mail_to = $config['owner_email']; $ownertest->mail_from = $config['owner_email']; $ownertest->subject = $subject; $ownertest->message = $message; $ownertest->is_HTML = ($_POST[format] == 1) ? true:false; $ownertest->use_SMTP = ($config[use_SMTP] == 1) ? true:false; $ownertest->send(); if($ownertest->success) { $status = "<font color=Green>Your test message has been successfully sent to the list owner @ " .date('g:i A T n/j/Y'). "</font>"; } else { $status = "<font color=Red>Unable to send message. Check your server's error log for details.</font>";
$config_contents .= "<strong>SMTP domain</strong> (used when logging into a SMTP server): $config[smtp_domain]<br />"; $config_contents .= "<strong>SMTP email address</strong>: $config[smtp_from_address]<br />"; $config_contents .= "<strong>SMTP username</strong>: $config[smtp_username]<br />"; $config_contents .= "<strong>SMTP port</strong>: $config[smtp_port]<br />"; if ($_POST) { $friends = array("friend1","friend2","friend3","friend4","friend5"); $message = "Check out this great FREE PHP mailing list script I found, Simple Mailing List.\n"; $message .= "You can download it from http://www.notonebit.com/projects/mailinglist.\n"; $message .= "It's easy to setup, fast, has loads of features, and best of all, easy to use.\n"; foreach($friends as $friend) { if (!empty($_POST[$friend])) { $tellfriend = new SMLmailer; $tellfriend->mail_to = $_POST[$friend]; $tellfriend->mail_from = $config['owner_email']; $tellfriend->subject = "Check out this script: Simple Mailing List"; $tellfriend->message = $message; $tellfriend->is_HTML = ($_POST[format] == 1) ? true:false; $tellfriend->use_SMTP = ($config[use_SMTP] == 1) ? true:false; $tellfriend->unsub_message = ""; $tellfriend->send(); } } } $path = substr($_SERVER['PHP_SELF'],0,-14) . "process.php"; $form_code = <<<EOT <form method="POST" action="$path">
$subscribers = implode(",",$bcc); $noqueue = new SMLmailer; $noqueue->mail_to = $config['owner_email']; $noqueue->mail_from = $config['owner_email']; $noqueue->mail_bcc = $subscribers; $noqueue->subject = $relay_subject; $noqueue->message = stripslashes($message); $noqueue->is_HTML = ($texthtml == "html") ? true:false; $noqueue->use_SMTP = ($config[use_SMTP] == 1) ? true:false; $noqueue->send(); } // Mailing or queueing complete. Send email to the address the message came from confirming receipt and processing $confirm = new SMLmailer; $confirm->subject = "Simple Mailing List - Relay Receipt"; $confirm->mail_to = $relay_from; $confirm->message = "Your message has been successfully received by Simple Mailing List "; $confirm->message .= "and is being processed."; $confirm->unsub_message = ""; $confirm->use_SMTP = ($config[use_SMTP] == 1) ? true:false; $confirm->send(); } // Mark the message for deletion (doesn't delete the message, just marks it) imap_delete($mbox,$val); } imap_expunge($mbox); imap_close($mbox);
echo "You can view the delivery progress in the <a href=archives.php>Archives</a>. To send another message, "; echo "<a href=\"send.php\">click here</a></p>"; } else // No queue - send immediately { $message_id = insert_message($subject,$message,time(),$send_time,$sent_count,$texthtml); // Build list of members and combine addresses to be used in the Bcc field $bcc = ""; while ($row = mysql_fetch_assoc($result)) { $bcc .= "$row[address],"; } $subscribers = substr($bcc, 0, -1); $to = $config['owner_email']; $noqueue = new SMLmailer; $noqueue->mail_to = $to; $noqueue->mail_from = $config['owner_email']; $noqueue->mail_bcc = $subscribers; $noqueue->subject = $subject; $noqueue->message = stripslashes($message); $noqueue->is_HTML = ($_POST[format] == 1) ? true:false; $noqueue->use_SMTP = ($config[use_SMTP] == 1) ? true:false; $noqueue->send(); if($noqueue->success) { echo "<p><b><font color=Green>Your message has been successfully sent and archived.</font></b> You can view the message in the <a href=archives.php>Archives</a>.</p>"; } else {
$admin_note = "$email has unsubscribed from $config[list_name]. There are now $count_confirmed[0] members subscribing to this list."; $notify_unsub = new SMLmailer; $notify_unsub->subject = "$config[list_name] Unsubscription"; $notify_unsub->mail_to = $config['owner_email']; $notify_unsub->message = $admin_note; $notify_unsub->unsub_message = ""; $notify_unsub->use_SMTP = ($config[use_SMTP] == 1) ? true:false; $notify_unsub->send(); } if($config['notify_user_on_unsub']) { $user_note = "You have been successfully unsubsribed from the $config[list_name] list."; $notify_user_unsub = new SMLmailer; $notify_user_unsub->subject = "$config[list_name] Unsubscription Confirmation"; $notify_user_unsub->mail_to = $email; $notify_user_unsub->message = $user_note; $notify_user_unsub->unsub_message = ""; $notify_user_unsub->use_SMTP = ($config[use_SMTP] == 1) ? true:false; $notify_user_unsub->send(); } } else { // one of the two denied conditions above occurred. $confirm_message = "Error processing request. Please contact $config[owner_email] for assistance.\n"; } } else