{
	// 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);
Example #5
0
		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