简体   繁体   中英

PHP E-mail Feedback Form

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

$mail_to = 'someemail@eample.com';
$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!

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 = "xyz@zz.com";
$to = "youremail@address.com";
$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 ;

$subject = 'Feedback from '. $field_name

should be: $subject = 'Feedback from '. $field_name; $subject = 'Feedback from '. $field_name;

Is there actually anything being POST'ed? If I replace the three first POST with just data I get the mails correctly. Can you echo the value you're posting?

This code:

>  <?php $field_name = 'Name'; $field_email = 'name@mail.com';
> $field_message = 'This is the message';
> 
> $mail_to = 'freekgille@gmail.com'; $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!');
>     </script> <?php } else { ?>
>     <script language="javascript" type="text/javascript">
>         alert('Sorry your feedback was not sent, please try again soon!');
>     </script> <?php } ?>

Results in this: 在此处输入图片说明

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM