【问题标题】:PHP Mail Headers Aren't AppearingPHP 邮件头没有出现
【发布时间】:2016-08-03 05:29:07
【问题描述】:

我正在尝试为网站构建一个简单的联系表单,但电子邮件的 $headers 部分没有正确发送。正在发送电子邮件本身,但电子邮件中缺少 $headers 选择器下的所有内容。我已经包含了 php 代码和下面的表单,而且我也知道我还没有清理代码。在添加其他内容之前,我想确保表单正常工作。

<?php
$to = "example@gmail.com";
$subject = "Reply From Your Website: ".$_POST["subject"];
$message = $_POST["message"];
$headers = "From: ".$_POST["name"]."" . "\r\n" . "Reply To: ".$_POST["email"]."";
mail($to,$subject,$message,$headers);
?>

            <table class="contact-form">
                <form method="post">
                    <tr>
                        <td class="label">Name:</td>
                        <td class="input"><input type="text" maxlength="40" name="name" required></td>
                    </tr>
                    <tr>
                        <td class="label">Email:</td>
                        <td class="input"><input type="email" maxlength="24" name="email" required></td>
                    </tr>
                    <tr>
                        <td class="label">Subject:</td>
                        <td class="input"><input type="text" maxlength="24" name="subject" required></td>
                    </tr>
                    <tr>
                        <td class="label">Message:</td>
                        <td class="input"><textarea rows="9" maxlength="1000" name="message" required></textarea></td>
                    </tr>
                    <tr>
                        <td></td>
                        <td><input type="submit" value="Submit"></td>
                    </tr>
                </form>
            </table>

【问题讨论】:

    标签: php html email


    【解决方案1】:

    我不太确定这是否会有所帮助,但我们还是试试吧。

    <?php
      $to = "kouen922@gmail.com";
      $subject  = "Reply From Your Website: ".$_POST["subject"];
      $message  = $_POST["message"];
      $headers  = "From: ".$_POST["name"]."" . "\r\n";
      $headers .= "Reply To: ".$_POST["email"]."";
      mail($to,$subject,$message,$headers);
    ?>
    

    【讨论】:

      【解决方案2】:

      可能有两个原因:

      1. $_POST['name'] 中您没有电子邮件地址(变量名称表示它是发件人姓名,而不是电子邮件)

      2. 邮件服务器配置不允许从不同于服务器域的域发送电子邮件

      试试这个:

      $subject = "Reply From Your Website: ".$_POST["subject"];
      $message = $_POST["message"];
      $headers = "From: ".$_POST["name"]." <email@serverdomain.com>" . "\r\n" . "Reply To: ".$_POST["email"]."";
      mail($to,$subject,$message,$headers);
      

      但将 email@serverdomain.com 更改为与您的服务器位于同一域中的一些电子邮件。

      【讨论】:

        猜你喜欢
        • 2014-05-10
        • 2011-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-27
        • 2014-07-19
        • 2021-06-19
        • 1970-01-01
        相关资源
        最近更新 更多