没有收到来自联系表格php的电子邮件

时间:2015-03-30 09:07:27

标签: php email contact

我的网站上有联系表格。但是,每当我点击提交时,我都没有收到任何电子邮件地址,尽管它确实说已经提交了。

我知道HTML有很多PHP,但关于<form id="contact-form" role="form" action="" method="POST"> <div class="ajax-hidden"> <div class="form-group wow fadeInUp"> <label class="sr-only" for="c_name">Name</label> <input type="text" id="c_name" class="form-control" name="c_name" placeholder="Name"> </div> <div class="form-group wow fadeInUp" data-wow-delay=".1s"> <label class="sr-only" for="c_email">Email</label> <input type="email" id="c_email" class="form-control" name="c_email" placeholder="E-mail"> </div> <div class="form-group wow fadeInUp" data-wow-delay=".2s"> <textarea class="form-control" id="c_message" name="c_message" rows="7" placeholder="Message"></textarea> </div> <button type="submit" class="btn btn-lg btn-block wow fadeInUp" data-wow-delay=".3s">Send Message</button> </div> <div class="ajax-response"></div> </form> <script> $('button').click(function () { var c_name = $("#c_name").val(); var c_email = $("#c_email").val(); var c_message = $("#c_message").val(); $.ajax({ //create an ajax request to load_page.php type: "POST", url: "assets/php/contactForm.php", data: { "c_name": c_name, "c_email": c_email, "c_message": c_message }, success: function (data) { if (data) { alert(data); } else { alert('Successfully not posted.'); } } }); }); </script> 并不多,所以欢迎任何帮助。

以下是代码:

<?php

// Contact
$to = 'krischlebus@gmail.com';
$subject = 'Portfolio ContactForm';

if(isset($_POST['c_name']) && isset($_POST['c_email']) && isset($_POST['c_message'])) {
    $name    = $_POST['c_name'];
    $from    = $_POST['c_email'];
    $message = $_POST['c_message'];

    if (mail($to, $subject, $from, $name, $message)) { 
        $result = array(
            'message' => 'Sent, thanks!',
            'sendstatus' => 1
        );
        echo json_encode($result);
    } else { 
        $result = array(
            'message' => 'Ooops, problem..',
            'sendstatus' => 1
        );
        echo json_encode($result);
    } 
}
?>

Contactform.php

{{1}}

2 个答案:

答案 0 :(得分:0)

检查服务器的邮件日志,查看邮件是否实际离开了您的服务器。 (并且要注意显而易见的,请在执行更多操作之前检查您的垃圾邮件箱。)如果mail()返回TRUE,则仅表示该邮件已被接受传递。并不是说它实际上已经交付了。

答案 1 :(得分:0)

尝试安装并运行PHPMailer,这是一个更彻底的电子邮件系统(免费),如果无法发送电子邮件,也会提供更多信息性的错误响应。

邮件功能众所周知是蹩脚的。您需要在其上获得正确的标题 ,即使这样,它仍然无法作为电子邮件客户端(例如gmail和hotmail)提供,而且大多数其他人使用SFP和FROM地址验证因此,您的发件人地址需要与您发送邮件的服务器的域相同。

检查系统是否正常工作:在接收电子邮件和接收服务器上禁用所有垃圾邮件过滤和捕获系统。检查来自域名与发送域名相同,检查您的垃圾邮件文件夹,检查您的服务器抓取所有电子邮件地址文件夹中的dud /垃圾邮件(通常类似于mail@server.co.uk)。

但最重要的是,使用更好的集成邮件程序,如PHPMailer或SwiftMail。