PHP联系表单返回成功,但不发送任何内容

时间:2014-04-26 21:46:37

标签: php html email

我正在开发一个个人投资组合网站(www.corybolles.com),我正在尝试创建一个基于PHP的联系人。与HTML和CSS相比,我对PHP知之甚少,我想知道是否有人可以帮我弄清楚为什么这不能正常工作。

HTML

<div id="contact">
            <form action="contact.php" method="post">
                <label>Name</label><br>
                <input class="forminput" type="text" name="cf_name" width="50px"><br>
                <label>Email</label><br>
                <input class="forminput" type="text" name="cf_email" width="50px"><br>
                <label>Message</label><br>
                <textarea class="forminput" name="cf_message" cols="18" rows="10"></textarea><br>
                <input class="formbutton" type="submit" name="submit"value="Send">
                <input class="formbutton" type="reset"  name="clear" value="Clear">
            </form>
        </div>

PHP

<?php

$name = $_POST['cf_name'];
$email = $_POST['cf_email'];
$message = $_POST['cf_message'];
$from = 'From: www.corybolles.com'; 
$to = 'jcbollesjr@gmail.com';
$subject = 'Message from user via www.corybolles.com';

$body = "From: $name\n E-Mail: $email\n Message:\n $message";

?>

<?php

if ($_POST['submit']) {
if (mail ($to, $subject, $body, $from)) {
    echo '<p>Thanks! Your message has been sent!</p>';
} else {
    echo '<p>Sorry, something appears to have broken. Please try again</p>';
    }
}   

?>

您可以自己测试,但每当我填写表单进行测试时,它都会返回一条成功的消息,但实际上并没有发送任何消息。

3 个答案:

答案 0 :(得分:1)

在单独的文件中尝试检查mail是否实际工作&#39;,因为您当前的代码看起来不错。

<?php
echo mail('your@address.com', 'your@address.com', 'test');
?>

此脚本尝试从your@address.comyour@address.com发送电子邮件,并回显函数的返回值。如果它没有回显'TRUE''1',则会出现一个奇怪的问题。如果确实如此,并且您的邮箱中没有收到任何邮件,则应与服务器管理员联系。

答案 1 :(得分:1)

它可能是您的服务器。如果您不拥有它,请与系统管理员联系。可能的原因可能是:关闭端口,数据包过滤或服务器或本地网络内的安全系统(如SELinux)。

答案 2 :(得分:1)

查看PHPMailer,它允许您通过SMTP发送邮件。这意味着您可以存储已发送的所有电子邮件,并降低邮件被发送到用户垃圾邮件文件夹的风险!