2016-05-17 60 views
1

我是一個初學者php,發現一個簡單的郵件功能。以下是代碼:郵件()不返回任何值PHP

private function sendEmail() { 

    $to = $this - > email; 
    $subject = $this - > subject; 
    $message = $this - > name. " : ". $this - > message; 
    $header = "From: ".$this - > email; 

    $mail = mail($to, $subject, $message, $header); 

    echo $to, $subject, $message, $header, $mail, "End"; 

    if ($mail) { 
    $this - > response_status = 1; 
    $this - > response_html = 'Thank You!'; 
    } else { 
    echo "Mail not found"; 
    } 
} 

當我把它從Javascript,它總是在土地的$.ajax錯誤塊,但沒有錯誤消息,則拋出。當我檢查網絡選項卡中ajax調用的響應時,我得到所有變量($ to,$ subject,$ name,$ message,$ header)的正確值,但$mail始終爲空。

我還得到郵件未找到從其他塊。

任何人都可以指向正確的方向嗎?

我在XAMPP的本地主機上運行它(在Ubuntu 15.10上)。

以下是響應的快照:

enter image description here

+2

它可能是['false'而不是空白](https://3v4l.org/XOofE)。使用['var_dump()'](http://php.net/manual/en/function.var-dump.php)來調試它,看看它包含了什麼。 – PeeHaa

+0

你沒有告訴我們你是如何從Ajax調用它的。這是一個單獨的問題。在PHP中,$ mail的值將是真或假。你在函數中返回「未找到郵件」的塊的事實表明它返回false。 – ADyson

+0

所以這裏的實際問題是這個代碼正在被你的javascript中的錯誤塊處理嗎?顯示你的Javascript,然後...此外,這個函數不返回任何東西。也許這是你的錯誤,但我們不能說,因爲我們沒有足夠的代碼 – WillardSolutions

回答

2

How to configure XAMPP to send mail from localhost?

檢查出來。應該爲亞洲工作,很可能您沒有任何實際發送郵件的應用程序 - 例如sendmail for * nix。

+0

我確實試圖按照步驟進行操作,但現在又換了一個。我安裝了* ssmtp *,現在得到這個錯誤:* ssmtp:無法打開smtp.gmail.com:587*。但仍然感謝您的幫助。 – Rajesh

+0

http://askubuntu.com/questions/677146/ssmtp-with-gmail-cannot-open-587587 - 試試這個? – GunniH