PHP mailing list script: sending emails to the list

The script bellow will work with PHP mailing list main script.  Source code for this script and for main script are available here.

This script includes a form to be filled with subject and message to be send to the mailing list. The script will open the file containnig the emails, and a message will be send to each email by using mail PHP command.

Just for security, a password is required to allow sending messages to the list.

emaillist_send_message.php
<?
error_reporting(0);
//#############################################################
//################# CONFIGURATION ##########################
//#############################################################

// choose a password
$my_password="123456";
// the email from which emails are send
// mydomain.com must be your real domain, otherways,
// the server will not send any emails
$from_email="John Smith <myemail@mydomain.com>";
// Your replay to email (whatever you want).
$replayto="myemail@mydomain.com";
// A message to be attached to the bottom of the message
// We recommend to add a link to subscription page
$message_at_bottom="
------------------------------------------------------------
P.D.: To remove from this list go to...
http://www.mydomain.com/emaillist/
";
$emails_file="emaillist-XXXXXXXXX.txt";

//#############################################################
//############### END CONFIGURATION ########################
//#############################################################

// IF INFO IS NOT POSTED, PRINT THE FORM AND DIE
if (!$_POST["mensaje"]){
print_form();
die();
}

// IF INFO IS POSTED YOU WILL BE HERE
// Check whether the password is correct
// (only webmaster is supposed to know the password, which has been specified above)
if ($_POST["p"]!=$my_password){die("Incorrect password");}

// Get the subject of message
$subject =$_POST["subject"];
// Get the body of message
$message=$_POST["mensaje"];
// Add to body of message the bottom
$message.=$message_at_bottom;
// Read the file with emails to variable $emails_file
$emails_file=file_get_contents($emails_file);
// Extract list of emails to array $emails_array
preg_match_all("/<.{0,100}?>/", $emails_file, $emails_array);

// Start output
print "<b>Sending messages...</b>";

// Send email to each email
foreach ($emails_array[0] as $email){
// remove "<" and ">" from each email
$email=substr($email,1,strlen($email)-2);
// Next line is the one sending the email: the key command of this script
mail ($email, $subject, $message,"From: $from_email\nReply-To: $replayto\nContent-Type: text/plain");
// Each time an email is send, output it
print "<br>$email\n";
// After sending each email, send previous line (the email) to the browser
flush();
}

?>


</body>
</html>
<?php
// THIS FUNCTION WILL SHOW THE FORM
// MODIFY IT AS REQUIRED
function print_form(){
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"  http-equiv="content-type">
  <title>My email list</title>
</head>
<body style="background-color: rgb(255, 255, 255);">
<center>
<h2>Form to send email to the mailing list</h2>
<table style="font-family: times new roman;" border="0" cellpadding="0" cellspacing="0">
  <tbody>
    <tr>
      <td style="vertical-align: top;">
<form method=POST action=send_email.php>
Subject
<br><input type=text name=subject size=40>
<br>Message
<br><textarea name=mensaje cols=50 rows=8></textarea>
<br>Password <input type=password name=p size=10>
<br><input type=submit value=Send>
</form>
      </td>
    </tr>
  </tbody>
</table>
</center>
</body>
</html>
<? } ?>



PhpTutorial.info