【问题标题】:PHP subject email seems to break up the receiving of contact formPHP主题电子邮件似乎破坏了联系表格的接收
【发布时间】:2016-09-28 15:54:39
【问题描述】:

我已经写了一个联系表格,当我输入“姓名、电子邮件和消息”时,我会收到电子邮件。但是,当我输入主题时,它会将我带到“谢谢”页面,但我似乎从未收到过电子邮件。

我已尝试更改 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> 

【问题讨论】:

  • error_reporting(~1); 那个波浪号在那里做什么?
  • 哎呀!这意味着error_reporting(-1)出现的错误是“未定义的索引:主题”,但我已经在php和html中声明了它。 @Fred-ii-
  • 嗯...这可能是因为您的输入中断/在单独的行上&lt;input type="text" class="form-control" id="Subject" name="subject" placeholder="Let me know what it's about"&gt; - 尝试将其放在一行中;我以前见过这种情况。您的&lt;textarea&gt; 和电子邮件也是如此。
  • 还要确保您填写了所有字段。
  • 所以你发布的是“所有”你的代码?你没有留下任何东西,对吧?如果您进行了任何更改并且没有上传新文件,那么您的缓存(内存)中可能还有一些内容。我见过的情况很多。如有疑问,请对所有变量/POST 数组使用条件语句,或者更好的是,使用三元运算符。我在这里没有其他可以添加的内容。

标签: php email subject


【解决方案1】:

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

$_POST['subject'];

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

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

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

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

这和做这个完全一样

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

【讨论】:

  • 大家好!因此,我一直在努力添加您的建议并进行更改,有时即使我添加了没有主题/带有消息的名字和姓氏,我也没有收到电子邮件。现在很迷茫的人!!显然不会放弃,但你认为这可能与服务器有关吗?我的网站是 www.benjackcleary.com,如果您想查看的话。感谢您的所有帮助
  • 可能是您的电子邮件客户端将电子邮件发送到垃圾邮件,因为主题行是空白的? (我刚刚填写了有和没有主题行的表格,让我知道它是怎么回事)
【解决方案2】:

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

【讨论】:

  • 太棒了。我很高兴听到它。不要忘记接受答案;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-26
  • 2016-04-20
相关资源
最近更新 更多