2012-12-01 80 views
0

我試圖發送使用Ajax和jQuery但即使Ajax請求獲得成功,則不會發送電子郵件中的電子郵件的電子郵件。電子郵件系統適用於其他的東西而不是回覆系統,我做的...我的代碼如下:發送用ajax和jQuery

var message = $('#message').val(); 
var dataString = 'message=' + message ; 
$.ajax({ 
    type: "POST", 
    url: "reply.php", 
    data: dataString, 
    cache: false, 
    success: function(html) 
    { 
     // success function 
    } 
}); 

Ajax調用成爲成功和成功的函數被調用,但郵件沒有發送。 。php代碼如下

$title = "something"; 
$message = $_POST['message']; 
$email = [email protected] 
mail($email, "Reply to \"".$title."\"", $message, 
"From: \"Ad reply\" <[email protected]$host>\r\n" . 
"X-Mailer: PHP/" . phpversion()); 

和我已經完成了...... if(isset($_POST))的事情。

+0

你有沒有嘗試發送電子郵件,而不阿賈克斯部分第一?確保您對mail()函數的調用按預期工作! – koopajah

+0

您對'$ email'的分配缺少引號。在真實的代碼中它是否正確?正確編碼URL,是你的Javascript'message'(我推薦使用的地圖,而不是用'$ .ajax'一個字符串,所以jQuery將照顧這一點)? – Barmar

回答

0

您的代碼並不顯示其中$主機設置。可能是造成它的格式不正確的「來自」地址?

在另一個不是,它是不交的數據直接從形式發送到電子郵件是一個好主意,你應該通過一些過濾器首先運行,以確保沒有討厭的代碼可以在電子郵件中結束。

+0

它是通過過濾器過去了,沒那麼蠢。我只是沒有寫出來。 n @host在那裏設置,但它不會像上面的字符串那樣起作用 – user1223654

0

試試這個代碼可以肯定這將工作 -


PHP代碼:

if(isset($_GET['email'])){ 

$email = $_GET['email']; 
$message = $_GET['msg']; 

$to = "[email protected]"; 
$subject = "Demo email"; 

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$headers .= 'From:' .$email. "\r\n";    
mail($to, $subject, $message, $headers); 
echo'success'; 
} 
else{ echo'error'; } 


AJAX/jQuery腳本:

email = $("#email").val(); 
msg = $("#msg").val(); 
$.ajax({ 
    url: 'ajxContact.php?email='+email+'&msg='+msg, 
    cache: false, 
    success: function(html){ 
    if(html == 'error'){ 
     alert("An error occurer and the message can't be sent."); 
     } 
    else { 
     alert('Email has been successfully sent.'); 
     } 
    } 
});