PHP表单没有收到电子邮件

时间:2014-11-27 12:01:19

标签: php html twitter-bootstrap

我想添加一个php表单,发送一条消息,其中包含发送它的人的姓名和电子邮件,这是我当前的html,顺便说一句,我使用bootstrap:

    <div class="row" id="contact-padding">
        <div class="col-md-12 text-center" id="contact-form1">
            <form action="mail.php" method="POST">
                <p></p><br><input type="text" name="name" placeholder="Име" id="formInput">
                <p></p><br><input type="text" name="email" placeholder="Поща"  id="formInput">
                <p></p><br><input type="text" name="phone" placeholder="Телефон" id="formInput">

                <p></p><br>
                    <textarea name="message" rows="6" cols="25" placeholder="Запишете съобщението, което искате да изпратите." ></textarea><br/><br>
                    <input type="submit" value="Изпрати" id="send">
                    <input type="reset" value="Изчисти" id="send">
            </form>
        </div>
    </div>
</div>

这是我用于此html的PHP脚本:

<?php
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$message = $_POST['message'];
$formcontent=" From: $name \n Phone: $phone \n Message: $message";
$recipient = "zombaza@abv.bg";
$subject = "Contact Form";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You!";
?>

每当我尝试发送消息时,它只是在新页面上打开php文件而我没有收到关于&#34; zombaza@abv.bg"

的电子邮件

我尝试了几件事,但他们似乎没有工作,我完成这份工作非常重要,所以如果有人有想法,请与我分享,我真的很感激!

2 个答案:

答案 0 :(得分:0)

发送邮件对于垃圾邮件而言是众所周知的。在您的情况下,您允许未经验证的内容直接进入电子邮件标题:这就是在寻找麻烦。您还需要注意空格和换行符。

要帮助自己投射,请转到受信任的邮件脚本/类/库。我经常使用swiftmailer(http://swiftmailer.org/),因为它具有合适的配置,错误捕获等。

如果您需要修复上面的代码,请添加标准调试(检查error_reporting和ini_set('display_errors')),因为它们会显示代码中的问题。在顶部放置一个“echo”,这样你就知道你正在调用正确的脚本等(“在新页面中打开”实际上表明你有一些干扰的JavaScript - 如果是这样的话就禁用JS函数)。

但在输出到电子邮件,数据库或HTML页面之前,请务必检查您的输入。

答案 1 :(得分:-1)

在此

中添加@
  @mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");