为什么我的php没有将我的联系表单输入发送到我的电子邮件?

时间:2015-06-16 18:45:31

标签: php html apache web xampp

我正在尝试编写一些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!"; 
        } 
    }   
?> 

当我点击提交时,没有任何内容被发送到我的收件箱!

1 个答案:

答案 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)置于顶部以启用错误。就像我之前说的那样,我猜你没有配置邮件服务器,这就是你没有收到任何电子邮件的原因。