我正在尝试编写一些PHP,它将提交我的“联系表单”并将输入发送到给定的电子邮件。
在互联网上,我发现以下代码执行此操作:
<?php
$action=$_REQUEST['action'];
if ($action=="") /* display the contact form */
{
?>
<form action="" method="POST" enctype="multipart/form-data">
<input type="hidden" name="action" value="submit">
Your name:<br>
<input name="name" type="text" value="" size="30"/><br>
Your email:<br>
<input name="email" type="text" value="" size="30"/><br>
Your message:<br>
<textarea name="message" rows="7" cols="30"></textarea><br>
<input type="submit" value="Send email"/>
</form>
<?php
}
else /* send the submitted data */
{
$name=$_REQUEST['name'];
$email=$_REQUEST['email'];
$message=$_REQUEST['message'];
if (($name=="")||($email=="")||($message==""))
{
echo "All fields are required, please fill <a href=\"\">the form</a> again.";
}
else{
$from="From: $name<$email>\r\nReturn-path: $email";
$subject="Message sent using your contact form";
mail("vik.srk@hotmail.com", $subject, $message, $from);
echo "Email sent!";
}
}
?>
当我点击提交时,没有任何内容被发送到我的收件箱!
答案 0 :(得分:0)
我更新了您的代码以实际测试邮件是否已发送...我怀疑您没有配置SMTP电子邮件服务器,这意味着PHP无法发送电子邮件。
您的代码现在检查mail()是否成功。
<?php
$action=$_REQUEST['action'];
if ($action=="") /* display the contact form */
{
?>
<form action="" method="POST" enctype="multipart/form-data">
<input type="hidden" name="action" value="submit">
Your name:<br>
<input name="name" type="text" value="" size="30"/><br>
Your email:<br>
<input name="email" type="text" value="" size="30"/><br>
Your message:<br>
<textarea name="message" rows="7" cols="30"></textarea><br>
<input type="submit" value="Send email"/>
</form>
<?php
}
else /* send the submitted data */
{
$name=$_REQUEST['name'];
$email=$_REQUEST['email'];
$message=$_REQUEST['message'];
if (($name=="")||($email=="")||($message==""))
{
echo "All fields are required, please fill <a href=\"\">the form</a> again.";
}
else{
$from="From: $name<$email>\r\nReturn-path: $email";
$subject="Message sent using your contact form";
$MailSent = mail("vik.srk@hotmail.com", $subject, $message, $from);
if($MailSent == true) {
echo 'Mail Sent';
} else {
echo 'Mail failed';
}
}
?>
如果失败,那么您知道邮件功能存在问题。如果您有任何语法错误,您还可以将error_reporting(-1)
置于顶部以启用错误。就像我之前说的那样,我猜你没有配置邮件服务器,这就是你没有收到任何电子邮件的原因。