I dont do the mailing list thing, but iI do have a script that loops through a database table and fires off an e-mail for each record.
<?
$STRcontent = "e-mail body content";
//connect
$db = mysql_connect("localhost","username","password");
mysql_select_db (database name);
$result = mysql_query ("select * from Invitees where partyID = '$STRpartyID'");
$body .= " <html><head><title>Party Invitation</title></head> \n";
$body .= " <body bgcolor=\"#FFFFFF\" text=\"#000000\"><font face='arial' size='2'> \n";
$body .= $STRcontent;
$body .= " </body>";
$body .= " </html>";
$headers .= "Content-Type: text/html; charset=iso-8859-1\n";
if ($STRinviter == "") {
$STRinviter = "Groovything Party Planner";
}
if ($STRfrom == "") {
$STRfrom = "Party_Planner@groovything.com";
}
$headers .= "From: ".$STRinviter." <".$STRfrom.">\r\n";
while ($row = mysql_fetch_array($result))
{
$STRid = $row["id"];
$STRinvitee = $row["invitee"];
$STRinviteeEmail = $row["inviteeEmail"];
$STRlink = " <br>click the following link for the details:<br><a target='_blank' href='http://www.groovything.com/default.php?page=viewParty'>Party Details</a> \n";
mail($STRinviteeEmail, "Party Update", $body.$STRlink, $headers);
}
if(!$result)
{
echo "<p align=center><b>Update not sent</b> ", mysql_error();
exit;
}
if($result)
{
mysql_close($db);?>
<?
print "<html><head><title>Party Update</title><link REL='STYLESHEET' HREF='css/sfx.css' TYPE='text/css'></head><body onLoad='setTimeout(window.close, 1000)'>";
print "<p align=center>Your Update has been sent to everyone</p>";
print "</body></html>";
}
?>
I recommend keeping the mailing list (sounds like you already plan on that) a database table and then you can update it or send out an e-mailer whenever you want.
dont know if this helps, but maybe you can use some of the logic