PHP提交错误


PHP Submission Error

我遇到了一个典型的PHP表单提交错误。我早些时候测试了代码,现在似乎可以工作了。当再次测试时,电子邮件一直没有收到。

这是HTML(当然,出于安全原因,我更改了网站/电子邮件地址)

<!-- Contact Form -->
<form method="post" action="http://example.net/assets/mail/mail.php">
  <div class="row 50%">
    <div class="6u 12u(mobile)"><input type="text" name="name" placeholder="Name" />
    </div>
  <div class="6u 12u(mobile)"><input type="email" name="email" placeholder="Email" />
  </div>
</div>
<div class="row 50%">
 <div class="12u"><textarea name="message" placeholder="Message" rows="6"></textarea>
 </div>
</div>
<div class="row">
 <div class="12u">
 <ul class="actions">
 <li>
    <input type="submit" value="Send Message" />
 </li>
 </ul>
   </div>
 </div>
</form>

这是PHP文件:

<?php $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $formcontent="From: $name 'n Message: $message";
    $recipient = "es@example.net";
    $subject = "Contact Form";
    $mailheader = "From: $email 'r'n";
    mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
    echo "Thank You!";
?>

PHP文件位于HTML链接的同一位置:http://example.net/assets/mail/mail.php电子邮件本身运行良好(每天使用)。当我测试表单时,我会收到回复/消息,说谢谢,所以我肯定找到了PHP文件,但我的收件箱里什么都没有。

这是一个如此简单的代码,但我真的很困惑,不确定发生了什么。

任何帮助都将不胜感激。

电子邮件可能在服务器的邮件队列中被阻止,或者被电子邮件主机阻止为垃圾邮件。对于基于linux的系统,电子邮件通常记录在/var/logs目录中,并且在基于windows的服务器上应该有相应的目录。从这里你应该能够看到服务器是否将电子邮件发送到世界上。

代码似乎是正确的。真正的问题是php的邮件功能的使用。如果您查看官方文档,您可以了解传递给函数的参数必须满足特殊要求的必要性。此外,在Windows或Linux中使用email()也有一些不同。

我的建议是不要直接使用mail(),而是使用库作为PHPMailer发送https://github.com/PHPMailer/PHPMailer

您的代码是正确的!这似乎是邮件服务器的问题。尝试更改收件人的邮件地址,并检查您的服务器是否在黑名单中:http://mxtoolbox.com/blacklists.aspx