Jump to content

simple email form keeps sending email to spam folder


Lisa23

Recommended Posts

Hi the user fill details and then the email his sent to me the only problem is that the emails keeps going to my spam, can someone help me out please I looked already php website and email format looks the same.

This is the link to my form.

http://www.people.eurico.co.uk/

 

here my form script

<?php

// Set email variables
$email_to = 'xxxxx@xxxxxxx.co.uk';
$email_subject = 'Call back form';

// Set required fields
$required_fields = array('fullname','email','telephone','comment');

// set error messages
$error_messages = array(
'fullname' => 'Please enter a Name to proceed.',
'email' => 'Please enter a valid Email.',
'telephone' => 'Please telephone.',
'comment' => 'Please enter your Message to continue.' 
);

// Set form status
$form_complete = FALSE;

// configure validation array
$validation = array();

// check form submittal
if(!empty($_POST)) {
// Sanitise POST array
foreach($_POST as $key => $value) $_POST[$key] = remove_email_injection(trim($value));

// Loop into required fields and make sure they match our needs
foreach($required_fields as $field) {		
	// the field has been submitted?
	if(!array_key_exists($field, $_POST)) array_push($validation, $field);

	// check there is information in the field?
	if($_POST[$field] == '') array_push($validation, $field);

	// validate the email address supplied
	if($field == 'email') if(!validate_email_address($_POST[$field])) array_push($validation, $field);
}

// basic validation result
if(count($validation) == 0) {
	// Prepare our content string
	$email_content = 'peoplesmartlearning.co.uk: ' . "\n\n";

	// simple email content
	foreach($_POST as $key => $value) {
		if($key != 'submit') $email_content .= $key . ': ' . $value . "\n";
	}

	// if validation passed ok then send the email
	mail($email_to, $email_subject, $email_content);

	// Update form switch
	$form_complete = TRUE;
}
}

function validate_email_address($email = FALSE) {
return (preg_match('/^[^@\s]+@([-a-z0-9]+\.)+[a-z]{2,}$/i', $email))? TRUE : FALSE;
}

function remove_email_injection($field = FALSE) {
   return (str_ireplace(array("\r", "\n", "%0a", "%0d", "Content-Type:", "bcc:","to:","cc:"), '', $field));
}

?>

 

The HTML

<div class="call_us_form">
        		<p class="title">WE'LL CALL YOU BACK</p>
			<?php if($form_complete === FALSE): ?>
			<form class="contact_form" id="fm-form" method="post" action="index.php" >
                <fieldset>
                    <div class="fm-req">
                        <label for="fm-firstname">Name</label>
<input type="text" id="fullname" class="detail" name="fullname" value="<?php echo isset($_POST['fullname'])? $_POST['fullname'] : ''; ?>" />
<?php if(in_array('fullname', $validation)): ?><script type="text/javascript">alert("Please enter a Name"); history.back();</script><?php endif; ?>
                    </div>
                
                    <div class="fm-req">
                    <label for="fm-firstname">Email</label>
                 <input type="text" id="email" class="detail" name="email" value=" 
		<?php echo isset($_POST['email'])? $_POST['email'] : ''; ?>" />
		<?php if(in_array('email', $validation)): ?><script type="text/javascript">alert("Please enter a valid Email Address"); history.back();</script><?php endif; ?>
                    </div>
                    
				<div class="fm-req">
                    <label for="fm-firstname">Number</label>
<input type="text" id="telephone" class="detail" name="telephone" value="<?php echo isset($_POST['telephone'])? $_POST['telephone'] : ''; ?>" />
	<?php if(in_array('telephone', $validation)): ?><script type="text/javascript">alert("Please enter telephone number"); history.back();</script><?php endif; ?>
                    </div>

                    <div class="fm-req">
                        <label for="fm-lastname">Message</label>
<textarea cols="40" rows="5" id="comment" name="comment" class="mess"><?php echo isset($_POST['comment'])? $_POST['comment'] : ''; ?></textarea>
		<?php if(in_array('comment', $validation)): ?><script type="text/javascript">alert("Please enter your message"); history.back();</script><?php endif; ?>
                    </div>
                <input class="submit_button" type="submit" value="Call us" />
                </fieldset>
            </form>
<?php else: ?>
<p>Thank you for your Message!</p>
<p>We will get back to you as soon as we can</p>

<script type="text/javascript">
setTimeout ('ourRedirect()', 5000)
function ourRedirect () {
	location.href='index.php'
	}
</script>
<?php endif; ?>

Link to comment
Share on other sites

The easiest solution would be to simply whitelist the address the emails are coming from.

 

Beyond that, email filtering is a complicated beast. Switching to code that constructs emails properly (for example, PHPMailer) will probably make the emails look legitimate enough to get through.

Link to comment
Share on other sites

Using the Mailto function would usually mean the senders email address doesnt match the server that sends the email, which triggers it as spam.

 

The best way would be to use an SMTP function to send the email. That way the email would be legitimate and wouldnt likely be caught in the spam folder.

 

http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm

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.