Jump to content

PHP Send Mail Code .


bcooperz

Recommended Posts

Hey my name is Brandon, im quite new to php but im improving and I really want to get into web design soon.

 

Well lucky for you guys I was bored so i decided to create a Contact Us page.

Just so you know MY contact us requires the user to be logged in to use it otherwise it redirects them to the login.php page and outputs a error saying "you need to be logged in to access this page", however i changed this contact us page so the user does not have to be logged in and it just requires all the fields to be entered.

One thing I diden't add was a system to check if the email has a "@" sign in it, so you can be more confident that the email is real, I don't find this that important because if the user is leaving out a "@" sign then it's likely they are just wanting to send a fake email and they will do it regardless of a check or not.

 

Here's The Code.

<?php

function mysql_prep($value) {

$magic_quotes_active = get_magic_quotes_gpc();

$new_enough_php = function_exists("mysql_real_escape_string"); // i.e PHP >= v4.3.0

if($new_enough_php){ // PHP v4.3.0 or higher

if ($magic_quotes_active){ $value = stripslashes($value); }

$value = mysql_real_escape_string($value);

}else{ //Before PHP v4.3.0

//if magic quotes aren't already on then add slahes manually

if(!$magic_quotes_active){ $value = addslashes($value); }

// if magic quotes are active then the slashes already exist

}

return $value;

}

 

function redirect_to($location = NULL){

if($location != NULL){

header("Location: {$location}");

exit;

}

}

?>

 

<?php

if (isset($_POST['submit'])){

// The form has been submitted

$errors = array();

 

// Perform validations on the form

$required_fields = array('title', 'email', 'message');

foreach($required_fields as $fieldname){

if(!isset($_POST[$fieldname]) || empty($_POST[$fieldname])){

$errors[] = $fieldname;

}

}

 

$field_with_lengths = array('title' => 20, 'email' => 50);

foreach($field_with_lengths as $fieldname => $maxlength) {

if (strlen(trim($_POST[$fieldname])) > $maxlength) {

$errors[] = $fieldname; }

}

 

// Set the needed variables here

$email = $_POST['email'];

$title = $_POST['title'];

$message = $_POST['message'];

 

if (empty($errors)){

// Their are no errors in the form

$headers = 'From: ' . $email . "\r\n" .

'Reply-To: bcooperz@hotmail.com' . "\r\n" .

'X-Mailer: PHP/' . phpversion();

 

$sentmail=mail("bcooperz@hotmail.com","$title","$message", "$headers");

 

// if your email successfully sent

if($sentmail){

echo "Your Email Has been sent";

}else{

echo "Cannot send email";

}

}else{

$count = count($errors);

if($count == 1){

echo "Their Was {$count} Error In The Form" . "<br />";

echo "<b>";

print_r(implode(", ", $errors));

echo "</b>";

}else{

echo "Their Was {$count} Error's In The Form" . "<br />";

echo "<b>";

print_r(implode(", ", $errors));

echo "</b>";

}

}

 

}else{

// The Form Has Not Been Submitted

$email = "";

$title = "";

$message = "";

}

?>

 

<html>

<head>

<title>Contact Us</title>

</head>

<body>

 

<form action="contact.php" method="post">

Title of message : <input type="text" name="title" maxlength="20" value="" /><br />

Your Email : <input type="text" name="email" maxlength="50" value="" /><br />

Message : <br /><textarea name="message" rows="20" cols="80"></textarea><br /><br />

<input type="submit" name="submit" value="Contact Us" /><br />

</form>

</body>

</html>

 

Now in order for this to work you will need to have a domain or localhost will also do fine if you have it set up with a email system, some free domains will work as long as they have a email sending capability and php enabled.

Also one thing you will want to do is change "bcooperz@hotmail.com" in that code to your email so the users of your website are sending the emails to your email

 

Thanks, BcooperZ.

Link to comment
Share on other sites

using a simple function like:

 

<?php
function isEmail($email) { // Email address verification

return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i",$email));

}
?>

 

is good practise because its not to stop humans from sending a fake email, rather bots, good to contain a captcha too.

Link to comment
Share on other sites

UPDATE! Added a email checking system so now it actually checks if the email contains a "@" or not.

NEW CODE!

<?php
function mysql_prep($value) {
$magic_quotes_active = get_magic_quotes_gpc();
$new_enough_php = function_exists("mysql_real_escape_string"); // i.e PHP >= v4.3.0
if($new_enough_php){ // PHP v4.3.0 or higher
if ($magic_quotes_active){ $value = stripslashes($value); }
$value = mysql_real_escape_string($value);
}else{ //Before PHP v4.3.0
//if magic quotes aren't already on then add slahes manually
if(!$magic_quotes_active){ $value = addslashes($value); }
// if magic quotes are active then the slashes already exist
}
return $value;
}

function redirect_to($location = NULL){
	if($location != NULL){
	header("Location: {$location}");
	exit;
}
}	
?>

<?php
if (isset($_POST['submit'])){
// The form has been submitted
$errors = array();

// Set the needed variables here
$email = $_POST['email'];
$title = $_POST['title'];
$message = $_POST['message'];

// Perform validations on the form
$required_fields = array('title', 'email', 'message');
foreach($required_fields as $fieldname){
if(!isset($_POST[$fieldname]) || empty($_POST[$fieldname])){
$errors[] = $fieldname;
}
}

$field_with_lengths = array('title' => 20, 'email' => 50);
foreach($field_with_lengths as $fieldname => $maxlength) {
if (strlen(trim($_POST[$fieldname])) > $maxlength) {
$errors[] = $fieldname; }
}

if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
$errors[] = "In-Correct Email Format";
}

if (empty($errors)){
// Their are no errors in the form
					$headers = 'From: ' . $email . "\r\n" .
					'Reply-To: bcooperz@hotmail.com' . "\r\n" .
					'X-Mailer: PHP/' . phpversion();

					$sentmail=mail("bcooperz@hotmail.com","$title","$message", "$headers");

				// if your email successfully sent
				if($sentmail){
				echo "Your Email Has been sent";
				}else{
				echo "Cannot send email";
				}
}else{
$count = count($errors);
if($count == 1){
echo "Their Was {$count} Error In The Form" . "<br />";
echo "<b>";
print_r(implode(", ", $errors));
echo "</b>";
}else{
echo "Their Was {$count} Error's In The Form" . "<br />";
echo "<b>";
print_r(implode(", ", $errors));
echo "</b>";
}
}

}else{
// The Form Has Not Been Submitted
$email = "";
$title = "";
$message = "";
}
?>

<html>
<head>
<title>Contact Us</title>
</head>
<body>

<form action="test.php" method="post">
Title of message : <input type="text" name="title" maxlength="20" value="" /><br />
Your Email : <input type="text" name="email" maxlength="50" value="" /><br />
Message : <br /><textarea name="message" rows="20" cols="80"></textarea><br /><br />
<input type="submit" name="submit" value="Contact Us" /><br />
</form>
</body>
</html>

Link to comment
Share on other sites

Updated my second post with the

 tag thanks for that i am new to this forum and diden't know it had that function.

hehe no problem, I thought i let you know, because most people stop reading after they see such a post.

anyway cheers for sharing your script. I assume (from the looks of it)  it was working already?

Link to comment
Share on other sites

Yea it's for people having troubles with their send mail scripts, I saw some people having troubles.

BTW im looking for a website design buddy if your interested, just to talk to on like MSN or something about sites, i want to be a programmer as my job.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.