2016-05-30 19 views
-1

フォームはhomepageに設定されています。誰かがフォームを送信すると、フォームを送信するPHPスクリプトにリダイレクトされます。唯一の問題は、フォームを使用してブラウザを使用しても何も送信されないことです。コマンドラインから実行するとすぐに電子メールを送信するスクリプトと同じサーバーでスクリプトを実行しています。 page in a browserに行くと確認メッセージが表示されますが、何も送信しません。何が起こっていますか? PHPがMSMTPを使用して電子メールを送信している場合は、私はを信じてのapacheがrootとして実行されている(私は悪いことが分かっている)。どうすれば確認できますか?誰がそれを望んでいる場合PHPはコマンドラインからメールを送信できますが、ブラウザでは送信できません。

は、ここでは、コードです:

<?php 
    ini_set('display_errors', 1); 
    error_reporting(E_ALL); 
    $from = "[email protected]"; 
    $to = "<MYEMAIL>"; 
    $subject = "PHP Mail Test script"; 
    $message = "This is a test to check the PHP Mail functionality"; 
    $headers = "From:" . $from; 
    mail($to,$subject,$message, $headers); 
    echo "Test email sent"; 
?> 

EDIT:どうやら新サーバーの所有者がrootとしてApache実行させないように十分にスマートでした。すべて確定しました。ありがとう@EdHeal

+0

あなたのPHPエラーログをチェックすれば、その理由が分かると思います。 – kkaosninja

+2

コードスニペットを入力してください。 –

+0

@PrototypeXenon - これは質問の編集としては良いでしょう。また、スクリプトが実行されているというユーザには、アクセス権への影響があります。 –

答えて

0

明らかに、新しいサーバー所有者は、Apacheとしてルートとして実行できないほどスマートでした。すべて確定しました。ありがとう@EdHeal

1

PHPはコマンドラインで実行され、PHPはWebサーバー経由で実行すると、全く異なるphp.iniファイルを使用できます。 phpinfo()を実行し、それぞれの場合に使用されているphp.iniファイルを確認してください。おそらくそれらのうちの1人はSMTPが正しく構成されていないでしょう。

+0

[私が編集したのと同じファイルです](http://prototypexenon.tech/info.php) – PrototypeXenon

+0

php.iniを探したり、Windows上にphp.iniを検索します。これは/etc/php/7.0になります/cli/php.ini /etc/php/7.0/fpm/php.ini 私はphp-fpmを使用していますが、コマンドラインとブラウザのiniは通常異なるので – smugford

+0

@smugfordこれはUbuntuで動作しています。私は100%私は正しいファイルを編集しています。 – PrototypeXenon

関連する問題