我正在开发一个个人投资组合网站(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>';
}
}
?>
您可以自己测试,但每当我填写表单进行测试时,它都会返回一条成功的消息,但实际上并没有发送任何消息。
答案 0 :(得分:1)
在单独的文件中尝试检查mail
是否实际工作&#39;,因为您当前的代码看起来不错。
<?php
echo mail('your@address.com', 'your@address.com', 'test');
?>
此脚本尝试从your@address.com
向your@address.com
发送电子邮件,并回显函数的返回值。如果它没有回显'TRUE'
或'1'
,则会出现一个奇怪的问题。如果确实如此,并且您的邮箱中没有收到任何邮件,则应与服务器管理员联系。
答案 1 :(得分:1)
它可能是您的服务器。如果您不拥有它,请与系统管理员联系。可能的原因可能是:关闭端口,数据包过滤或服务器或本地网络内的安全系统(如SELinux)。
答案 2 :(得分:1)
查看PHPMailer,它允许您通过SMTP发送邮件。这意味着您可以存储已发送的所有电子邮件,并降低邮件被发送到用户垃圾邮件文件夹的风险!