Search code examples
phphtmlformssubmissionfeedback

PHP E-mail Feedback Form


<?php
$field_name = $_POST['cf_name'];
$field_email = $_POST['cf_email'];
$field_message = $_POST['cf_message'];

$mail_to = '[email protected]';
$subject = 'Feedback from '. $field_name

$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message;

$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";

$mail_status = mail($mail_to, $subject, $body_message, $headers);

if ($mail_status) { ?>
    <script language="javascript" type="text/javascript">
        alert('Thank you for your feedback, have a nice day!');
        window.location = 'some undefined location';
    </script>
<?php
}
else { ?>
    <script language="javascript" type="text/javascript">
        alert('Sorry your feedback was not sent, please try again soon!');
        window.location = 'some undefined location';
    </script>
<?php
}

?>

I'm trying to create a form that submits the feedback to my desired email adress, the form seems to be running smoothly when i enter all the details but I am not receiving any emails?

Can anyone see why?

Thanks!


Solution

  • write headers like this :

    $headers = "From: " . $field_email. "\r\n";
    $headers .= "Reply-To: ". $field_email. "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    
    example :
    
    $from = "[email protected]";
    $to = "[email protected]";
    $subject = "subject trail mail";
    $mail_msg = "trail mail body";
    
    $headers = "From: "  . $from . "\r\n";
    $headers .= "Reply-To: ". $from . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    $retval = mail ($to,$subject,$mail_msg,$headers);
    
    if( $retval == true )  
    {
        $st = "mail sent successfully";
    }
    else{
        $st = "mail error" ;
    }
    echo "mail Status : " . $st ;