我最近通过创建网页并将其发布到我的覆盆子pi上托管的apache2服务器上并使用no-ip.com地址学习HTML,js,CSS和PHP。我学习PHP的第一个真正的项目是创建一个简单的表单,然后发送电子邮件给我,但我一直遇到mail()函数执行没有任何错误,但实际上没有发送电子邮件的问题。
以下是表格:
<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>
以下是表单&#39; action&#39;中的PHP文件引用。属性:
<?php
if($_SERVER["REQUEST_METHOD"] == "POST") {
$to = "myExampleEmail@gmail.com";
$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("myExampleEmail@gmail.com", "subject", "message", $headers)) {
echo "TRUE";
}else {
echo "FALSE";
}
。 。 。结果证明是假的。我认为这意味着我的代码中出现了错误,那么?
编辑:
显然我在发布此问题之前说我做了研究时并不清楚。我尝试了所有的东西,作为一个问题的答案,我的是一个封闭的重复&#34;无论如何,我问这个问题。
答案 0 :(得分:-2)
我尝试了相同的脚本并收到了电子邮件。但是,它去了垃圾邮件文件夹。标题应该有更多细节。您可以检查邮件功能返回代码以确保该功能成功。以下是最佳做法。
$boundary = "==MP_Bound_xyccr948x==";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: multipart/alternative; boundary=\"$boundary\"\r\n";
$headers .= "From: OrganizationName <webmaster@mycompany.com>\r\n";
$headers .= "Return-path: webmaster@mycompany.com\r\n";
$message = "This is a Multipart Message in MIME format\n";
$message .= "--$boundary\n";
$message .= "Content-Type: text/plain; charset=\"utf-8\"\n";
$message .= "Content-Transfer-Encoding: 7bit\n\n";
$message .= $user_entered_message . "\n";
$message .= "--$boundary--";
$mailsent = mail($to, $subject, $message, $headers, "-fbounces@mycompany.com");
if ($mailsent)
{
confirmation_msg();
}
else
{
email_error_msg();
}