views:

78

answers:

2

Hey everyone. Just joined a couple of minutes ago.

I wanted to see if anyone might be able to tell me why my contact page isn't sending me emails.

My contact page is here: http://frankjuval.com/contact.php

I don't get any errors. If you enter your info, it seems like it sends it. It even gives you the message that your email has been sent. Yet I don't get any emails.

Above the Doctype I have <?php include('contact/formprocess.php'); ?>

The formprocess.php is coded like this [I've taken out my email in order to avoid spam]:

        <?php

include('includes/corefuncs.php'); if (function_exists('nukeMagicQuotes')) { nukeMagicQuotes(); }

// process the email if (array_key_exists('send', $_POST)) { $to = '[email protected]'; // use your own email address $subject = 'Email from your contact form';

// list expected fields $expected = array('name', 'email', 'comments'); // set required fields $required = array('name', 'email', 'comments'); // create empty array for any missing fields $missing = array();

// assume that there is nothing suspect $suspect = false; // create a pattern to locate suspect phrases $pattern = '/Content-Type:|Bcc:|Cc:/i';

// function to check for suspect phrases function isSuspect($val, $pattern, &$suspect) { // if the variable is an array, loop through each element // and pass it recursively back to the same function if (is_array($val)) { foreach ($val as $item) { isSuspect($item, $pattern, $suspect); } } else { // if one of the suspect phrases is found, set Boolean to true if (preg_match($pattern, $val)) { $suspect = true; } } }

// check the $_POST array and any sub-arrays for suspect content isSuspect($_POST, $pattern, $suspect);

if ($suspect) { $mailSent = false; unset($missing); } else { // process the $_POST variables foreach ($_POST as $key => $value) { // assign to temporary variable and strip whitespace if not an array $temp = is_array($value) ? $value : trim($value); // if empty and required, add to $missing array if (empty($temp) && in_array($key, $required)) { array_push($missing, $key); } // otherwise, assign to a variable of the same name as $key elseif (in_array($key, $expected)) { ${$key} = $temp; } } }

// validate the email address if (!empty($email)) { // regex to ensure no illegal characters in email address $checkEmail = '/^[^@]+@[^\s\r\n\'";,@%]+$/'; // reject the email address if it doesn't match if (!preg_match($checkEmail, $email)) { array_push($missing, 'email'); } }

// go ahead only if not suspect and all required fields OK if (!$suspect && empty($missing)) { // build the message $message = "Name: $name\n\n"; $message .= "Email: $email\n\n"; $message .= "Comments: $comments";

// limit line length to 70 characters
$message = wordwrap($message, 70);

// create additional headers
/*$additionalHeaders = 'From: Frank Juval Studio Site';
if (!empty($email)) {
  $additionalHeaders .= "\r\nReply-To: $email";
 }*/

// send it  
$mailSent = mail($to, $subject, $message, $additionalHeaders);
if ($mailSent) {
  // $missing is no longer needed if the email is sent, so unset it
  unset($missing);
  }
}

} ?>

I'm no PHP programmer. I grabbed this code from a site that provides it for free with a tutorial. My expertise is HTML/CSS. Eventually I'll get into PHP.

Thanks for the help in advance.

Frank

+1  A: 

Try with something much simpler:

mail('[email protected]', 'Subject', 'Message');

If it is sent, then the script might be the problem. If it is not, then your host might not support sending email.

metrobalderas
Thanks for the reply metrobalderas. Although it didn't seem to work.Yes, the script is the problem. I've worked on it a bit. The only thing it's not doing properly is sending the actual message. It sends all the other info (i.e. name, subject, email), but not the message body. Any ideas how I can fix this? I'm going to repost the updated PHP code.
Frank Juval
A: 
<?
 $destination="mailto:[email protected]";
$name=$_POST['Name'];
$Phone=$_POST['Phone'];
$State=$_POST['State'];
$email=$_POST['Email'];
$mes=$_POST['Message'];
$subject="Message from $name" ;
$mes="Name : $name\n Phone: $Phone\n
Email: $email\n\n Message: $mes\n";
mail($destination,$subject,$mes); 
?>
nato