已发送PHP联系表单但未发送

时间:2016-07-21 23:33:54

标签: php forms contact

我试图确保其他错误不在这里,但我似乎无法解决这个问题。当我通过输入姓名,电子邮件和消息来运行测试时,它会返回对消息的感谢,但从不发送电子邮件。

希望这个不是一个愚蠢的错字

HTML:

            <form method="post" action="contact.php" id="contactform">

                <div>
                <p>Send us your message</p>
                </div>

                <div>
                <label>Username <span class="required">*</span></label>
                <input name="name" type="text" id="name" value="" />
                </div>

                <div>
                <label>Email <span class="required">*</span></label>
                <input name="email" type="text" id="email" value="" />
                </div>

                <div>
                <label>Message <span class="required">*</span></label>
                <textarea name="message" rows="20" cols="50"  id="message" ></textarea><br /><br />
                </div>

                <div>
                <input type="submit"  value="Submit" class="button">
                <input type="reset" value="Reset" class="button">
                </div>

            </form>

PHP:

<?php
$field_name    = $_POST['name'];
$field_email   = $_POST['email'];
$field_message = $_POST['message'];

$mail_to = 'test@email.com';
$subject = 'Web message 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 the message.');
    window.location = '/';
  </script>
<?php
}
else { ?>
  <script language="javascript" type="text/javascript">
    alert('Message failed.);
    window.location = '/';
  </script>
<?php
}
?>

1 个答案:

答案 0 :(得分:-2)

请不要那样做。您需要使用mysql_real_escape_string之类的东西来逃避和清理用户输入,您只需使用

即可
header('Location: http://example.org/');
exit();

对于您的问题:在我看来,邮件功能在任何特定情况下都不适合使用。仅仅因为有许多虚拟主机服务不允许使用它或有限制。我会使用像PHPMailer这样的东西,它使用smtp来发送和检索电子邮件数据。请注意,您需要一个电子邮件帐户才能使用这样的库。

曼尼