2012-05-15 57 views
0

我在MAC上運行,我試圖使用PHP郵件與Ajax實現。ajaxified的PHP郵件不工作

我簡化了我的代碼,它減少到串點:

在我的.js文件:

function ajaxMail2() { 



     $('#sending').show(); 


     $.ajax({ 

      type:'POST', 
      url:'ajax/mail.php', 

      success:function(data, status) { 
       $('#sending').hide(); 
       $('#success').fadeIn(1000,function() { 
        //$(this).delay(200).fadeOut(1000); 
       }); 
      }, 

      error:function(data, status, e) { 
       $('#sending').hide(); 
       $('#fail').fadeIn(1000,function() { 
        $(this).delay(200).fadeOut(1000); 
       }); 
      } 

     }); 


    } 

,並在我的PHP文件:

<?php 



$to = '[email protected]'; 
mail($to,'test','test'); 



?> 

表單提交後,它會轉到成功功能,但沒有電子郵件發送到$ to。有任何想法嗎?

+1

您將獲得javascript成功函數,因爲您的php實際上不會輸出任何內容以指示郵件調用失敗。這並不意味着郵件實際發送。 mail()** LIES **給你。 –

+0

如果您直接瀏覽到ajax/mail.php是否發送了您的郵件? –

回答

0
<?php 
$to = '[email protected]'; 
if(mail($to,'test','test')) { 
    echo "sent"; 
} 
else { 
    echo "error"; 
} 
exit; 
?> 

和你的JS

..... 
success:function(data, status) { 
    if("sent" == data) { 
     $('#sending').hide(); 
     $('#success').fadeIn(1000,function() { 
      //$(this).delay(200).fadeOut(1000); 
     }); 
    } 
    else { 
     alert("Could not send mail"); 
    } 
}, 

這種方式,你可以,如果郵件被髮送或檢查不

不知道這是否解決您的問題,但嘗試添加標題:

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$headers .= 'To: Someone <[email protected]>' . "\r\n"; 
$headers .= 'From: Me <[email protected]>' . "\r\n"; 

$to = '[email protected]'; 
if(mail($to,'test','test')) { 
    ..... 
+0

tnx先生。它失敗了。關於爲什麼失敗的任何想法? :( –

+0

你可以嘗試添加標頭郵件,因爲某些原因在 –

+0

上面添加的答案,它是成功的。但仍然沒有郵件。是否因爲我只在本地主機上運行? –