Php > E-Mail
Email a user with out exposing email address
Email a user with out exposing email address Keeping emails hidden is an increasing concern with all the spam floating around. Here is a way using MySQL and a contact form to allow a group of users on a site to contact each other safely... Bastien "; $your_email = ''; } //check to see if the other elements have values if(empty($message)) { $err_msg .= "No message set. Please enter a message.
"; } if(empty($subject)) { $err_msg .= "No subject set. Please enter a subject.
"; } if(empty($your_name)) { $err_msg .= "No sender name set. Please enter a your name.
"; } //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 = "$id|$subject|$message|$your_email|$your_name"; show_form($data,$err_msg); die(); }//end if //get the email from the db and send it $sql = "select email from contacts where id = $id"; $result = conn($sql); if(mysql_num_rows($result)==1) { $row = mysql_fetch_array($result); $email = $row['email']; } //send the email //build the headers $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\n"; $headers .= "X-Priority: 1\n"; $headers .= "X-MSMail-Priority: High\n"; $headers .= "X-Mailer: PHP\n"; $headers .= "From: \"".$your_name."\" <".$your_email.">\n"; if (!mail($email, $subject, $message, $headers)) { echo "Email failed!\nTry again"; show_form(); }else{ echo ""; echo ""; }//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 * FROM contacts";//[optional where clause to show only people who choose to allow contact] $result = conn($sql); echo "
Make A Friend
\n"; echo "
\n"; echo "
\n"; echo "
Email A Friend
\n"; echo "
\n"; echo "
$msg
\n"; //produce the email drop down if (mysql_num_rows($result)>0){ //produce the drop down list echo "
Name:
\n"; //optionally add MULTIPLE to allow sending to multiple addresses echo "
Choose One
\n"; while ($rows = mysql_fetch_array($result)){ echo "
".$rows['first_name'].' '.$rows['last_name']."
\n"; }//end while echo "
"; }else{ //if there is a problem, have the user manually enter the email address echo "
Currently unable to locate email addresses. There maybe a problem with the database.
"; echo "
"; echo "
Please enter the email address manually
\n"; echo "
Email Address:
\n"; }//end if echo "
Subject:
\n"; echo "
Message:
$message
\n"; echo "
Your name:
\n"; echo "
Your Email:
\n"; echo "
\n"; echo "
\n"; }//end function /* db connection function */ function conn($sql) { $host = "localhost"; $user = "user"; $pass = "pass"; $db = "my_db"; //echo "commnecing connection to local db
"; if (!($conn=mysql_connect($host, $user, $pass))) { printf("error connecting to DB by user = $user and pwd=$pass"); exit; } $db3=mysql_select_db($db,$conn) or die("Unable to connect to local database"); $result = mysql_query($sql) or die ("Can't run query because ". mysql_error()); return $result; }//end function ?>
Php Codes
Algorithms
Arrays
Authentication
Calendar
Code Snippets
Programs
Content Manage
Contest Related
Cookies
Credit Cards
DBase Related
Databases
Date Time
Directories
E-Mail
Errors
File
File System
Forms
Handling
Graphics
HTML and PHP
Informix
Ingres
InterBase
LDAP
Look and Feel
Miscellaneous
MySQL
Other
PHP Classes
Searching
Navigation
Statistics
Strings
User Manage