Contact Form, problems with GMAIL

Wickd

The first member of the Knights of the Pink Table
Jan 15, 2013
1,936
612
Hey guys so i'll go straight to my problem.Anyway i set up a decent contact form that should send e-mails to my main gmail account but it doesnt.Some of the mails go through but they're either delayed or filtered as spam.I thought it was a problem regarding the form itself but i tested out on my yahoo mail and the mails go trough instantly ( around a few seconds ).Any ideas?

Also it's just the e-mails that come from my contact form; email-email work perfectly fine.
Doubt it's the code but Y NOT
PHP:
<?php

// define("WEBMASTER_EMAIL", '');
//$address = "";
$address = "";
if (!defined("PHP_EOL")) define("PHP_EOL", "\r\n");

$error = false;
$fields = array( 'name', 'email', 'subject', 'message' );

foreach ( $fields as $field ) {
    if ( empty($_POST[$field]) || trim($_POST[$field]) == '' )
        $error = true;
}

if ( !$error ) {

    $name = stripslashes($_POST['name']);
    $email = trim($_POST['email']);
    $subject = stripslashes($_POST['subject']);     
    $message = stripslashes($_POST['message']);
  
    $e_subject = 'You\'ve been contacted by ' . $name . '.';

    // Configuration option.
  

    $e_body = "You have been contacted by: $name" . PHP_EOL . PHP_EOL;
    $e_reply = "E-mail: $email" . PHP_EOL . PHP_EOL;
    $e_subject = "\r\nsubject: $subject"; 
    $e_content = "Message:\r\n$message" . PHP_EOL . PHP_EOL;

    $msg = wordwrap( $e_body . $e_reply .$e_subject , 70 );

    $headers = "From: $email" . PHP_EOL;
    $headers .= "Reply-To: $email" . PHP_EOL;
    $headers .= "MIME-Version: 1.0" . PHP_EOL;
    $headers .= "Content-type: text/plain; charset=utf-8" . PHP_EOL;
    $headers .= "Content-Transfer-Encoding: quoted-printable" . PHP_EOL;

    if(mail($address, $e_subject, $msg, $headers)) {

        // Email has sent successfully, echo a success page.

        echo 'Success';

    } else {

        echo 'ERROR!';

    }

}

?>
 
Last edited:

Ecko

23:37 [autobots] -!- eckostylez [[email protected]]
Nov 25, 2012
1,398
962
They get filtered because using PHP's mail() function sends email unauthenticated. Even if you're specifying from a 'From' address, the email actually comes from 'whatever@serverhostname'. Switch to PHPMailer and use SMTP authentication to avoid this problem (although items such as IP reputation may play a part). Also most mail servers have an SMTP transaction delay setup because it is one of the most effective way of combating inbound spam (besides maybe sender callout verification).
 

Users who are viewing this thread

Top