我正在建立一个网站作为练习。它有一个“联系我们”页面,我在其中创建了一个表单。我已经用.php扩展名保存了该页面,相信在这种情况下,网页会将表单数据发送到另一个php页面。一旦按下发送按钮,它将导致带有html和php脚本的php页面,该脚本应自动发送电子邮件。但那并没有发生。这是php脚本:
<?php
if(isset($_POST['submit']))
{
$name = $_POST['name'];
$email = $_POST['email'];
$mobile = $_POST['mobile'];
$country = $_POST['country'];
$city = $_POST['city'];
$message = $_POST['contactusmessage'];
$headers = 'xxx@xxx.com';
$to = 'xxx@xxx.com';
$mail=mail($to,$message,$headers);
if($mail){
echo"<p>Thanks $name for the message.</p>";
echo"<p>We will reply to $email</p>";
}
else{
echo "Mail sending failed.";
}
}
?>
请告诉我哪里出错了?
答案 0 :(得分:5)
$headers = 'admin@bulkbuying.biz';
跳出来看看这是一个无效的标题。这可能就是为什么你的邮件没有出去的原因。尝试将其更改为$headers = 'From: admin@bulkbuying.biz';
同时将$mail=mail($to,$message,$headers);
更改为$mail=mail($to,'This is the subject',$message,$headers);
,如下面的其他答案中所述。您将主题参数遗漏为mail()
。
答案 1 :(得分:1)
除了Brian指出的内容之外,您可能还想在mail()命令的调用中指定消息的主题,并指定信封发件人(以及在标题中指定发件人)。 mail()命令应该如下所示:
mail($to, "web form submittal", $message, $headers, "-f sender@senderdomain.com");