PHP 主题邮件似乎中断了联系表的接收

PHP subject email seems to break up the receiving of contact form

我写了一个联系表格,当我输入 'name, email, and message' 时,我收到了电子邮件。但是,当我输入主题时,它会将我带到 'Thank you' 页面,但我似乎从未收到过电子邮件。

我试过更改 PHP 脚本中的不同变量,但这不起作用。我不知道是什么阻止了电子邮件的发送。请参阅下面的代码。

<?php 

error_reporting(-1);
ini_set('display_errors', 'On');
set_error_handler("var_dump");

if(isset($_POST['submit'])){
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$formcontent = "From: $first_name $last_name \n \n Message: $message";
$to = 'EMAIL@ADDRESS.DONTSHOW';
$mailheader = "From: $email \r\n";
mail($to, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You! Your kind message has been recieved!";
}
?> 
   <form method="POST" action="mail.php">
                    <div class="form-inline">
                        <label for="Firstname">Name</label>
                        <input type="text" class="form-control" 
                        id="Firstname" name="first_name" placeholder="First Name">  
                        <input type="text" class="form-control" 
                        id="Lastname" name="last_name" placeholder="Last Name">
                    </div>          
                    <div class="form-group">
                        <label for="Email">E-mail</label>
                        <input type="email" class="form-control" 
                        id="Email" name="email" placeholder="Email Address">
                    </div>
                    <div class="form-group">
                        <label for="Subject">Subject</label>
                        <input type="text" class="form-control" 
                        id="Subject" name="subject" placeholder="Let me know what it's about">
                    </div>  
                    <div class="form-group">
                        <label for="Message">Message
                        </label> 
                        <textarea  class="form-control" 
                        id="Message" name="message" rows="6" placeholder="Send me something awesome!"></textarea>
                    </div>  
                    <button type="submit" name="submit" class="btn btn-default">Submit
                    </button>               
                </form> 

我没有发现您发布的代码有任何问题会阻止主题行发布到 php。换句话说,仅根据您发布的代码,php 应该能够访问

$_POST['subject'];

但为了以防万一,请尝试将提交按钮更改为输入按钮,就像这样

`<input type="submit" name="submit" value="Submit">`

其次,即使填写表格的人没有提供主题行,将来始终保留主题行可能会有用。 (这真的可以帮助您整理邮件)。我会使用 PHP shorthand 赋值运算符。看起来像这样

$subject = isset($_POST['subject']) ? $_POST['subject'] : "Default Subject Line";

这与执行此操作完全相同

if(isset($_POST['subject'])){
    $subject = $_POST['subject'];
} else {
    $subject = 'Default Subject Line';
}

所以成功了!!!!我想经过一段时间的尝试,电子邮件终于通过了。它可能是刷新网站缓存和将提交按钮更改为输入的两件事之一。总而言之,发送电子邮件仍然很慢,但这可能与服务器有关。我将使用 100 封电子邮件进行测试以确保。