【发布时间】:2015-01-01 03:06:18
【问题描述】:
我不太了解 PHP,我正在尝试获取一个非常简单的 PHP 脚本来发送电子邮件。单击提交时,我收到了谢谢消息,但没有电子邮件。
<?php $name = $_POST['name'];
$email = $_POST['email'];
$web = $_POST['web'];
$message = $_POST['message'];
$formcontent="From: $name \n Website: $web \n Message: $message";
$recipient = "myemail@example.com"; // I do have my email here
$subject = "Contact Form";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You!";
?>
这里是html表单:
<form action="mail.php" method="post" class="form">
<p class="name">
<label for="name">Name</label>
<input type="text" name="name" id="name" />
</p>
<p class="email">
<label for="email">E-mail</label>
<input type="text" name="email" id="email" />
</p>
<p class="web">
<label for="web">Website</label>
<input type="text" name="web" id="web" />
</p>
<p class="text">
<label for="web">Comments</label>
<textarea name="message"></textarea>
</p>
<p class="submit">
<input type="submit" value="Send" />
</p>
</form>
【问题讨论】:
-
使用错误处理程序找出
mail错误是什么。或者您可以使用已经构建的类,如PHPMailer。 -
收不到 PHP
mail()的原因有很多,比如你的开发环境没有运行 SMTP 服务器,它进入垃圾邮件(这很常见)你的 ISP 阻止出站消息,等等。你有 SMTP 服务器吗?你能看懂它的日志吗? -
真的,建议使用PHPMailer之类的东西,而不是
mail()。 -
你是如何运行脚本的?如果您通过自己的 Internet 连接在自己的计算机上运行它,请注意某些 ISP 会阻止外发电子邮件。
-
是的,我知道它可能无法在本地运行,所以它在 Web 服务器上。那么我应该用 PHPmailer() 替换 mail() 吗?除此之外,它看起来还可以吗?感谢您的快速回复。