2016-05-17 7 views
1

私はphpの初心者で、簡単なメール機能を発見しました。コードは次のとおりです。私はJavascriptからそれを呼び出すとmail()は値を返さない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"; 
    } 
} 

、それは常に$.ajaxのエラーブロックに土地が、エラーメッセージは、それがスローされません。ネットワークタブでajax呼び出しの応答を調べると、すべての変数($ to、$ subject、$ message、$ message、$ header)の値が正しく取得されますが、$mailは常に空白です。

また、メールが届かない他のブロックから。

誰でも正しい方向に向けることができますか?

私はXAMPP(Ubuntu 15.10上)のlocalhost上で実行しています。

enter image description here

+2

おそらく、空白ではなく「偽」です(https://3v4l.org/XOofE)。 ['var_dump()'](http://php.net/manual/en/function.var-dump.php)を使ってデバッグして、その内容を確認してください。 – PeeHaa

+0

あなたは私たちにAjaxからどのように呼び出すのかを教えてくれませんでした。それは別の問題です。 PHPでは、$ mailの値はtrueまたはfalseのいずれかになります。あなたがあなたの関数のブロックに入って "mail not found"を返すという事実は、それがfalseを返すことを示唆しています。 – ADyson

+0

実際の問題は、このコードがJavaScriptのエラーブロックによって処理されているということです。あなたのJavascriptを表示し、次に...この関数は何も返さない。たぶんそれはあなたのエラーですが、十分なコードがないので私達にはわかりません – WillardSolutions

答えて

2

How to configure XAMPP to send mail from localhost?

それをチェックアウト:後

は、応答のスナップショットです。あなたは実際にメールを送信するためのアプリケーションを持っていない可能性があります。 * nixのためのsendmail

+0

私はその手順に従うようにしましたが、今は別のものを手に入れようとしました。 * ssmtp *をインストールしましたが、今このエラーが発生しています:* ssmtp:smtp.gmail.com:587*を開くことができません。しかし、まだ助けてくれてありがとう。 – Rajesh

+0

http://askubuntu.com/questions/677146/ssmtp-with-gmail-cannot-open-587587 - 試してみますか? – GunniH