1

我的网站托管在 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";
}
?>

因此,当我单击提交按钮时,它会发送邮件。在 ap 标签内我有 echo $feedback,它在我点击提交后显示。

邮件发不出去?我在这里做错了什么,还是我需要以某种方式配置我的 cPanel?

4

3 回答 3

0

请注意,将$_POST内容直接用于电子邮件对您来说是一种安全风险!有一些很好的电子邮件库具有避免滥用的工具。(例如:ZendMailPHPmailer

话虽如此,在您的代码中,您缺少标题并且在$email =(not -)上有一个小错误$_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();
于 2013-08-16T06:09:31.220 回答
0

由于标头是可选的并且未定义,因此删除它应该可以解决您的问题。

于 2013-08-16T06:04:01.123 回答
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";
    }
?>
于 2013-08-16T06:07:15.457 回答