//select the email address' from your db
//NOTE: This will expose your users email addresses to address harvesters potentially leading to spam
// A better method is simply to post the user name and then do a look up on the email address
// but that is a another story
if (isset($_POST['submit']))
{
//submit button pushed call the send_email function
send_email();
}else{
//nothing has been pushed so show the form
show_form();
}//end if
/**************************************************************************
send_mail function
**************************************************************************/
function send_email()
{
//default values for elements
$subject = '';
$email = '';
$message = '';
$your_name = '';
$your_email = '';
$err_msg = '';
$headers = '';
//get the values from the form handle any errors
if(isset($_POST['subject']))
{
$subject = $_POST['subject'];
}
if(isset($_POST['email']))
{
$email = $_POST['email'];
}
if(isset($_POST['message']))
{
$message = $_POST['message'];
}
if(isset($_POST['your_name']))
{
$your_name = $_POST['your_name'];
}
if(isset($_POST['your_email']))
{
$your_email = $_POST['your_email'];
}
//validate the emails for correctness
if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
$err_msg .= "Email is not valid. Please re-enter it<br />";
$email = '';
}
//sender's email
if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $your_email)) {
$err_msg .= "Your email is not valid. Please re-enter it<br />";
$your_email = '';
}
//check to see if the other elements have values
if(empty($message))
{
$err_msg .= "No message set. Please enter a message.<br />";
}
if(empty($subject))
{
$err_msg .= "No subject set. Please enter a subject.<br />";
}
if(empty($your_name))
{
$err_msg .= "No sender name set. Please enter a your name.<br />";
}
//check the err_msg to see if there are any messages
if ($err_msg != ''){
//there is an error so build the data into a pipe delimited string and pass it back to the form
$data = "$email|$subject|$message|$your_email|$your_name";
if (!mail($email, $subject, $message, $headers))
{
echo "Email failed!";
}else{
echo "<script language='javascript'>alert('Mail sent');</script>";
}//end if
}//end function
/**************************************************************************
show_form function
**************************************************************************/
function show_form($data='',$msg='')
{
//show the form for the email
//the $data='' and $msg='' constructs allow for no information to be passed to the function
//set defaults for function
$subject = '';
$email = '';
$message = '';
$your_name = '';
$your_email = '';
//explode the string passed back from the send_mail function if there is an error
if (($data !="" )&&($msg != ""))
{
$elements = explode("|",$data);
$email = $elements[0];
$subject = $elements[1];
$message = $elements[2];
$your_email = $elements[3];
$your_name = $elements[4];
}//end if
/*
optional where clauses could include:
1. only active users
2. check to see if the user wants to allow contact from others on the site
3. only new users (signed up within a certain date)
*/
$sql = "select email_address from tablename [optional where clause]";
//produce the email drop down
if (($result)&&(mysql_num_rows($result)>0)){
//produce the drop down list
echo "<tr><td width='50%' align='right'>Email Address: </td><td><select name='emails'>"; //optionally add MULTIPLE to allow sending to multiple addresses
while ($rows = mysql_fetch_array($result)){
echo "<option>".$rows['email_address']."</option>";
}//end while
echo "</select></td></tr>";
}else{
//if there is a problem, have the user manually enter the email address
echo "<tr><td colspan='2' align='center' style='color:red; font-weight:bold;'><br />Currently unable to locate email addresses. There maybe a problem with the database.</td></tr>";
echo "<tr><td colspan='2'> </td></tr>";
echo "<tr><td colspan='2' align='center' style='color:red; font-weight:bold;'>Please enter the email address manually</td></tr>";
echo "<tr><td width='40%' align='right'>Email Address: </td><td><input type='text' name='email' size='50' value='$email'></td></tr>";
}//end if