PHP / jQuery / HTML5联系人表格无法发送电子邮件

时间:2018-10-19 17:32:43

标签: php jquery html5 email contact-form

我有一个已启动并正在运行的模板网站,唯一的问题是,我不了解php,因此无法获取联系表格。它的功能在于JS可以正常工作,并且在提交后会显示已发送的消息,并且验证似乎还不错,只是发送时我没有收到邮件。

php文件只有一个指令,用所需的电子邮件替换了$to中的test@mail.com,我明显改变了我的电子邮件-php文件的底部有一个差异,也有一条消息说“用电子邮件代替”,但是我认为这是一个错误,因为存在$to变量,但是就像我说的那样,我不知道php。

我要粘贴在下面,请记住我将我的电子邮件地址改回test@mail.com-这样就不会出现问题了。

由于负责创建此模板的团队没有回复我的电子邮件,对解决此问题的任何帮助将不胜感激。

html:

    <section id="contact-section" class="ptb ptb-sm-80">
        <div class="container">
            <div class="row">
                <div class="col-md-8 offset-md-2 text-center">                        
                </div>
            </div>
            <div class="spacer-75"></div>
            <div class="row">
                <div class="col-md-6 offset-md-3">

                    <!-- Contact FORM -->
                    <form class="contact-form" id="contact">

                        <!-- IF MAIL SENT SUCCESSFULLY -->
                        <h6 class="successContent">
                            <i class="fa fa-check left" style="color: #5cb45d;"></i>Your message has been sent successfully.
                        </h6>
                        <!-- END IF MAIL SENT SUCCESSFULLY -->

                        <!-- MAIL SENDING UNSUCCESSFULL -->
                        <h6 class="errorContent">
                            <i class="fa fa-exclamation-circle left" style="color: #e1534f;"></i>There was a problem validating the form please check!
                        </h6>
                        <!-- END MAIL SENDING UNSUCCESSFULL -->

                        <div class="form-field-wrapper">
                            <input class="input-sm form-full" id="form-name" type="text" name="form-name" placeholder="Your Name" required>
                        </div>

                        <div class="form-field-wrapper">
                            <input class="input-sm form-full" id="form-number" type="text" name="form-number" placeholder="Phone number" required>
                        </div>

                        <div class="form-field-wrapper">
                            <input class="input-sm form-full" id="form-email" type="email" name="form-email" placeholder="Email" required>
                        </div>

                        <div class="form-field-wrapper">
                            <input class="input-sm form-full" id="form-subject" type="text" name="form-subject" placeholder="Subject">
                        </div>

                        <div class="form-field-wrapper">
                            <textarea class="form-full" id="form-message" rows="7" name="form-message" placeholder="Your Message" required></textarea>
                        </div>

                        <button class="btn btn-md btn-black form-full" type="submit" id="form-submit" name="submit">Send Message</button>
                    </form>
                    <!-- END Contact FORM -->
                </div>
            </div>
        </div>
    </section>
    <!-- Contact Section -->

jquery:

(function ($) {

    "use strict";

    $("#contact").validate();

    /* =================================
    ===  CONTACT FORM               ====
    =================================== */
    $("#contact").submit(function (e) {
        e.preventDefault();
        var name = $("#form-name").val();
        var number = $("#form-number").val();
        var email = $("#form-email").val();
        var subject = $("#form-subject").val();
        var message = $("#form-message").val();
        var dataString = 'name=' + name + '&email=' + number + '&number=' + email + '&subject=' + subject + '&message=' + message;

        function validEmail(emailAddress) {
            var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
            return pattern.test(emailAddress);
        };

        if (validEmail(email) && (message.length > 1) && (name.length > 1)) {
            $.ajax({
                type: "POST",
                url: "../send-mail.php",
                data: dataString,
                success: function () {
                    $('.successContent').fadeIn(1000);
                    $('.errorContent').fadeOut(500);
                }
            });
        }
        else {
            $('.errorContent').fadeIn(1000);
            $('.successContent').fadeOut(500);
        }
        return false;
    });

})(jQuery);

php:

<?php

$to = 'test@mail.com'; // Change your email address

$name = $_POST['name'];
$subject = $_POST['subject'];
$email = $_POST['email'];
$message = $_POST['message'];

// Email Submit
// Note: filter_var() requires PHP >= 5.2.0
 if ( isset($email) && isset($name) && isset($subject) && isset($message) && filter_var($email, FILTER_VALIDATE_EMAIL) ) {

  // detect & prevent header injections
  $test = "/(content-type|bcc:|cc:|to:)/i";
  foreach ( $_POST as $key => $val ) {
    if ( preg_match( $test, $val ) ) {
      exit;
    }
  }

$body = <<<EMAIL
subject : $subject

My name is, $name.

$message

From : $name
Email : $email

EMAIL;

$header = 'From: ' . $_POST["name"] . '<' . $_POST["email"] . '>' . "\r\n" .
    'Reply-To: ' . $_POST["email"] . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

  //
 // mail( $to , $_POST['subject'], $_POST['message'], $headers );
 mail($to, $subject, $body, $header);
  //      ^
  //  Replace with your email 
}
?>

0 个答案:

没有答案