我的网站托管在name.com上,为了测试这个,我在顶部上传了一个名为contact.php的简单文件。
<?php
$to = '~~~~';
$subject = 'enquiry from ';
$name = $_POST['name'];
$email - $_POST['email'];
$message = $_POST['message'];
if ($_POST){
mail($to, $subject, $message, $header);
$feedback = "Sent";
}
?>
因此,当我点击提交按钮时,它会发送邮件。在p标签内部,我有echo $ feedback,在我点击提交后显示。
邮件不发送?我在这里做错了什么,还是我需要以某种方式配置我的cPanel?
答案 0 :(得分:0)
由于标题是可选的并且未定义,因此删除标题可以解决您的问题。
答案 1 :(得分:0)
你没有设置标题变量是可选的,设置$ email变量时有拼写错误,你使用 - 而不是=
您的更新代码,
<?php
$to = 'a@a.com';
$subject = 'enquiry from ';
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
if ($_POST){
mail($to, $subject, $message);
$feedback = "Sent";
}
?>
答案 2 :(得分:0)
请注意,将$_POST
内容直接用于电子邮件对您来说存在安全风险!
这是一个很好的电子邮件库,有避免滥用的工具。 (例如:ZendMail,PHPmailer)
话虽如此,您的代码上缺少标题并在$email
=
(不是-
)$_POST['email'];
上犯了一个小错误,您可以使用此代码:
$header = 'From: from@name.com' . "\r\n" .
'Reply-To: from@name.com' . "\r\n" .
'Content-type: text/html; charset=iso-8859-1' . "\r\n" .
'X-Mailer: PHP/' . phpversion();