Help with Basic Contact Form Please

Hi Everyone,
First, thanks for having me here. I’m a super newbie PHP user and I’m trying to get this form to work. Everything seems to be functioning well except the actual email is not being delivered to my inbox. The error messaging is good and the ‘thank you’ page is good, but the delivery isn’t working out…
Please have a look and let me know what you think. The email should go to me at [email protected] - like I have set up… Thanks to anyone who can spend a sec on this…

<?php if(isset($_POST['email'])) { // DIRECTIVES $email_to = "[email protected]"; $email_subject = "Test Email"; function died($error) { // ERROR CODE echo "There were error(s) found with the form you submitted. "; echo "These errors appear below.

"; echo $error."

"; echo "Please go back and fix these errors.
"; die(); } // VALIDATION if(!isset($_POST['first_name']) || !isset($_POST['last_name']) || !isset($_POST['email']) || !isset($_POST['telephone']) || !isset($_POST['comments'])) { died('We are sorry, but there appears to be a problem with the form you submitted.'); } $first_name = $_POST['first_name']; // required $last_name = $_POST['last_name']; // required $email_from = $_POST['email']; // required $telephone = $_POST['telephone']; // not required $comments = $_POST['comments']; // required $error_message = ""; $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; if(!preg_match($email_exp,$email_from)) { $error_message .= 'The Email Address you entered does not appear to be valid.
'; } $string_exp = "/^[A-Za-z .'-]+$/"; if(!preg_match($string_exp,$first_name)) { $error_message .= 'The First Name you entered does not appear to be valid.
'; } if(!preg_match($string_exp,$last_name)) { $error_message .= 'The Last Name you entered does not appear to be valid.
'; } if(strlen($comments) < 2) { $error_message .= 'The Comments you entered do not appear to be valid.
'; } if(strlen($error_message) > 0) { died($error_message); } $email_message = "Form details below.\n\n"; function clean_string($string) { $bad = array("content-type","bcc:","to:","cc:","href"); return str_replace($bad,"",$string); } $email_message .= "First Name: ".clean_string($first_name)."\n"; $email_message .= "Last Name: ".clean_string($last_name)."\n"; $email_message .= "Email: ".clean_string($email_from)."\n"; $email_message .= "Telephone: ".clean_string($telephone)."\n"; $email_message .= "Comments: ".clean_string($comments)."\n"; // EMAIL HEADERS $headers = 'From: '.$email_from."\r\n". 'Reply-To: '.$email_from."\r\n" . 'X-Mailer: PHP/' . phpversion(); @mail($email_to, $email_subject, $email_message, $headers); ?>

Remove the @ before mail() and see if there are any errors.

Thank you for replying. I removed the @ symbol before the email statement but the form will still not submit. Any other suggestions? Thanks again…

What happens?

Everything works fine - it returns errors and thanks the user for submitting. However, simply, no email arrives in my inbox after the fact. Very puzzling. So everything is good it’s just that the email isn’t being delivered…
Thanks for checking in!

Well… what are the errors?

Mis-communication. There are no errors (I was saying it reports any errors from the user’s input). So everything works fine; just no emailed delivered…

Mail can be tricky sometimes. You should contact your host and see if they are being blocked by the mail server for any reason.

Sounds good. It may be an issue as such. Thanks!

Sponsor our Newsletter | Privacy Policy | Terms of Service