2009-08-23 158 views
2

如果用戶標記問題,如何通過jQuery和PHP發送電子郵件?通過jQuery/PHP發送電子郵件

我的頭JS代碼

jQuery('a.flag_question').live('click', function(){ 
    jQuery.post('/codes/handlers/flag_question.php', 
     { question_id: jQuery(this).attr('rel') });            
      alert ("Question was reported."); 
}); 

其處理程序flag_question.php不給我一個電子郵件

$question_id = $_POST['question_id']; // data from jQuery.post 
$subject = "Flagged question"; 
$to = '"Michael Boltman <[email protected]>'; 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

$message = "<a href='index.php?question_id=" . $question_id . "'>" 
    . "The question " . $question_id . "</a> is flagged by an user. Please, review it."; 
if (mail($to, $subject, $message)) { 
    echo ("Thank you for your report!"); 

} 

我也用我的真實電子郵件地址,而代碼中的一個是僞代碼。

鏈接是由PHP

echo ("<a href='#'" 
      . " class='flag_question'" 
      . " rel='" . $question_id . "'>flag</a>" 
     ); 

回答

1

您可能沒有郵件服務器! 這通常是在您的計算機上使用LocalHost時發生的。

+0

我在我的電腦上使用本地主機。 **如何設置郵件服務器?** – 2009-08-23 17:44:16

+0

這對於Ubuntu:https://help.ubuntu.com/community/MailServer 而這個適用於windows:http://www.hmailserver.com/ A可用電子郵件服務器的完整列表如下:http://en.wikipedia.org/wiki/Comparison_of_mail_servers – 2009-08-24 09:37:26

1

產生可以檢出的PHP的郵件功能here的文檔。

注意項目:有許多人張貼在文檔註釋解決方法,因爲這種功能通常似乎如果你的服務器/系統未正確配置到不行。

此用戶的評論可能是有用的(link

愛德華01 - 8月2009年9點08

目前我的託管服務是Godaddy的。當試圖使用沒有包含「-f」的第五個參數的郵件功能時,我的郵件標題將不起作用。

每當你的郵件標頭不工作,只是嘗試使用第五個參數:

<?php 
mail($to, $subject, $message, $headers, "[email protected]"); 
?> 
+0

**我該給變量添加什麼* $標題*?** – 2009-08-23 04:01:42

+1

嘗試: $ headers ='MIME-Version:1.0'。爲 「\ r \ n」 個; $標題。='Content-type:text/html; charset = iso-8859-1'。爲 「\ r \ n」 個; – 2009-08-23 04:07:12

+0

我的電子郵件地址沒有收到電子郵件。 - 這表明這個問題顯然在MTA中。 – 2009-08-23 04:33:47

1

您對PHP的mail函數調用似乎將郵件發送到[email protected]。如果那是你的真實電子郵件地址,我會留下深刻的印象,否則你將需要使用你真實的電子郵件地址。如果你有,請提及。

檢查事項:

  • 檢查Gmail上的「垃圾郵件」文件夾以查看Gmail中是否認爲你的郵件是垃圾郵件。如果是這樣,這裏有很多問題回答"How do I make sure my email isn't considered spam?"
  • 檢查您的本地MTA(無論您在Ubuntu盒子上運行什麼),看看它是否報告郵件已被您的PHP腳本接受併發送到Gmail正常。如果這是問題,那麼serverfault.com是診斷該問題的正確位置。
+0

@Greg:我在我的Ubuntu上安裝了NullMailer。 MTA對我來說是新的。我在電子郵件中更改了我的詳細信息,以便我的郵件不會被過濾爲垃圾郵件。我以前從未使用過MTA。 - **你如何看到NullMailer是否發送了郵件?** – 2009-08-23 04:01:12

+0

NullMailer是否會寫入日誌文件來詳細說明其活動?如果是這樣,那麼看看那裏。如果不是,那麼我不知道該怎麼建議,因爲我不使用NullMailer。 – 2009-08-23 04:32:48

+0

@Greg:你的MTA是什麼? – 2009-08-23 05:05:16