簡體   English   中英

PHP AJAX聯系人表格未發送電子郵件

[英]PHP AJAX contact form dosen't send email

試圖獲取AJAX聯系人表格以發送電子郵件,但該表格無法正常工作,經過深入的研究,我仍然無法理解問題所在,因此也許有人可以幫忙。

JS:

// Contact form
var form = $('#main-contact-form');
form.submit(function(event){
    event.preventDefault();
    var form_status = $('<div class="form_status"></div>');
    $.ajax({
        url: $(this).attr('action'),
        beforeSend: function(){
            form.prepend( form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Email is sending...</p>').fadeIn() );
        }
    }).done(function(data){
        form_status.html('<p class="text-success">Thank you for contact us. As early as possible  we will contact you</p>').delay(3000).fadeOut();
    });
});

的PHP

<?php    
if(isset($_POST['submit'],$_POST['name'],$_POST['email'],$_POST['message'])){
$name = $_POST['name']; 
$email = $_POST['email'];  
$message = $_POST['message']; 

$email_from = $email;
$email_to = 'email@email.com';

$body = 'Name: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . "\n\n" . 'Message: ' . $message;

$success = mail($email_to, $subject, $body, 'From: <'.$email_from.'>');

$response = array(); } 

echo json_encode($response); 

die; 
?>

的HTML

<div class="contact-form bottom">
    <h2>Send a message</h2>
    <form id="main-contact-form" name="contact-form" method="post" action="sendemail.php">
        <div class="form-group">
            <input type="text" id="name" name="name" class="form-control" required="required" placeholder="Name">
        </div>
        <div class="form-group">
            <input type="email" id="email" name="email" class="form-control" required="required" placeholder="Email Id">
        </div>
        <div class="form-group">
            <textarea name="message" id="message" required class="form-control" rows="8" placeholder="Your text here"></textarea>
        </div>                        
        <div class="form-group">
            <input type="submit" name="submit" class="btn btn-submit" value="Submit">
        </div>
    </form>
</div>

請幫忙! 我沒辦法了。

Ajax函數缺少data參數。

var form = $('#main-contact-form');

form.submit(function(event){
    event.preventDefault();
    var form_status = $('<div class="form_status"></div>');
    $.ajax({
        url: $(this).attr('action'),
        type: 'POST',
        data: { // pass the data values sending through ajax
              name : name,
              email : email,
              message : message
        },
        beforeSend: function(){
            form.prepend( form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Email is sending...</p>').fadeIn() );
        }
    }).done(function(data){
        form_status.html('<p class="text-success">Thank you for contact us. As early as possible  we will contact you</p>').delay(3000).fadeOut();
    });
});

您可以獲取要通過ajax發送到php腳本的值,如下所示:

var name = $('#name').val();
var email = $('#email').val();
var message = $('#message').val();

一旦獲得了這些值,就可以調用ajax函數,將它們作為數據參數傳遞並將數據類型設置為POST 然后,在您的PHP腳本中,您可以像您一樣獲得帖子值。

$ subject在哪里初始化? 我看不到它在發送到郵件功能之前在php代碼中獲得價值

要發送電子郵件,您需要配置類似的內容,還需要使用“不安全的應用”啟用(對於Gmail)。 要啟用“不安全”,您需要登錄到您的帳戶,然后單擊以下鏈接:

http://know.mailsbestfriend.com/smtp_error_password_command_failed_5345714-1194946499.shtml

public function sendEmail($email, $subject, $message) {                                                                                                
    $config= array(
        'protocol'  => 'smtp',
        'smtp_host' => 'ssl://smtp.gmail.com',
        'smtp_port' => 465,
        'smtp_user' => 'example@gmail.com',
        'smtp_pass' => 'xxxxxxx',
        'mailtype'  => 'html', 
        'charset'   => 'iso-8859-1',
        'wordwrap'  => TRUE
    );

    $this->load->library('email', $config);
    $this->email->set_newline("\r\n");
    $this->email->initialize($config);

    $this->email->from('localhost', 'Team Name');
    $this->email->to($email); 
    $this->email->subject($subject);
    $this->email->message($message);    
    if(!$this->email->send()){
        echo $this->email->print_debugger();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM