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

Posted

技术标签:

【中文标题】为啥我的 php 没有将我的联系表单输入发送到我的电子邮件?【英文标题】:Why isn't my php sending my contact form input to my email?为什么我的 php 没有将我的联系表单输入发送到我的电子邮件? 【发布时间】:2015-09-01 18:03:41 【问题描述】:

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

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

【问题讨论】:

我们需要更多信息,例如您编辑的配置文件,以及浏览器地址栏中的位置 您的 XAMPP 上未启用 PHP。 确保使用服务器地址,而不是文件地址" 对不起,伙计们,它现在正在工作。但是还是有问题,上面编辑过。 欢迎来到 Stack Overflow,请不要使用代码 sn-p for PHP,因为代码 sn-p 无法解释它,而是使用代码示例(第五个图标: 或通过 ctrl+k快捷方式)。 【参考方案1】:

我更新了您的代码以实际测试邮件是否已发送...我怀疑您尚未配置 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) 放在顶部以打开错误,以防您遇到任何语法错误。就像我之前说的,我猜您没有配置邮件服务器,这就是您收不到任何电子邮件的原因。

【讨论】:

以上是关于为啥我的 php 没有将我的联系表单输入发送到我的电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章

为啥用户输入不附加到我的 SQL 数据库?

为啥 PHP 会弄乱我的 CSS?

为啥我的 php 联系表发送空白电子邮件? [复制]

PHP 联系表单的配置问题

联系表单验证以防止空白电子邮件

为啥 ajax 不将我的 JS 变量发送到 PHP?