我最近一直在通过创建网页并将它们发布到托管在我的覆盆子pi上的apache2服务器上,并使用no-ip.com地址发布它们,最近一直在学习HTML,js,CSS和PHP。我的第一个学习PHP的真正项目是创建一个简单的表单,然后发送一封邮件给我,但我一直在讨论mail()函数的执行问题,没有任何错误,但实际上并没有发送电子邮件。不接收来自PHP邮件()函数的电子邮件
下面的形式:
<form class="" action="/FormTesting/sendMail.php" method="post">
Name:<br><input type="text" name="name" value="" required><br>
Email:<br><input type="text" name="email" value="" required><br>
Message:<br><textarea name="message" rows="8" cols="80" required></textarea><br>
Subject:
<input type="radio" name="subject" value="Hello!">Hello!
<input type="radio" name="subject" value="Whats up">Whats Up!<br>
<input type="submit" name="submit" value="Submit">
</form>
下面是在窗体的“行动”属性的PHP文件引用:
<?php
if($_SERVER["REQUEST_METHOD"] == "POST") {
$to = "[email protected]";
$name = $_POST["name"];
$email = $_POST["email"];
$message = $_POST["message"];
$subject = $_POST["subject"];
echo $name;
echo $email;
echo $message;
echo $subject;
$headers = array("From: " . $email,
"Reply-To: " . $to,
"X-Mailer: PHP/" . PHP_VERSION);
mail($to, $subject, $message, $header);
} else {
echo $_SERVER["REQUEST_METHOD"];
}
?>
据我所知,这个问题已经被问过,我有尝试了其他答案中列出的大多数方法,但我仍然无法使PHP mail()函数正常工作。我得到的最好的信息是,我必须在服务器上进行某种安装或格式化,以便发送电子邮件,但我还没有找到有据可查的文件和/或解释。 (即PHPMailer的 - 但仍...如何?)
编辑:
我检查了邮件功能的返回值。 。 。
if(mail("[email protected]", "subject", "message", $headers)) {
echo "TRUE";
}else {
echo "FALSE";
}
。 。 。事实证明它正在返回假。我认为这意味着它是我的代码中的错误,然后呢?
编辑:
显然,我并不清楚,当我说我发布这个问题之前做了研究。我尝试了所有的答案,作为我作为一个“重复”关闭的问题的答案,因此我问,无论如何这个问题。
您不检查mail()函数的返回值。这是最不应该的。 PHP手册中的每个函数都具有记录的返回值,了解返回值并处理它以执行最少的操作 - http://php.net/mail - 编辑您的问题并解释您期望的返回值以及返回值你得到的价值。如果邮件的回复是真实的,而你没有收到邮件,这就超出了PHP的范围。 – hakre
我检查了返回值。这是错误的,我不知道该怎么做。 –
这只是意味着发送电子邮件失败(直接)。让你的应用程序处理它,这是一个有效的返回值(它可能发生)。其余的是解决问题,但首先让你的代码与错误案例一起工作。例如。向用户显示发送电子邮件失败的消息。 – hakre