2011-11-15 21 views
4

私は奇妙な問題に直面しています。私はプロジェクトにmail.phpというファイルがあります。私はシェルからコマンドを実行すると:ウェブサーバー経由でメールを送信できませんが、同じPHPスクリプトでコマンドラインから送信することはできません

php mail.php 

それは数秒でメールを送信しますが、同じファイルを実行しているとき:

<?php 
     echo "Sending mail now...."; 
     mail("[email protected]", "PHP Test mail", "Hope this works! "); 
?> 

https://www.domain.com/mail.php 

んが、メールはこのコードを使用して、外出されていません

誰かが私を助けることができますか?

+1

これは多くのことに関係するかもしれませんが、ログをチェックしましたか? php.iniファイルは、cli、cgi、apache、fpmで異なる可能性がありますので、configsまたはユーザーのアクセス許可になる可能性があります –

+0

Webサーバー経由でログをチェックしたとき、エラーログレポートは次のようになります。またはTrustedUserです。何か案は? – Ekalabya

+0

[PHPメール()は、コマンドラインからは動作しますが、Apacheでは動作しません](http://stackoverflow.com/questions/1462941/php-mail-works-from-command-line-but-not-apache) –

答えて

0

考えられる解決策:php.iniの

sendmail_path = /usr/sbin/sendmail.postfix -t -i

sendmail_path = /usr/sbin/sendmail -t -i

を交換後にApacheを再起動します。

+0

の変化に対応していない運..その格言: SH:/usr/sbin/sendmail.postfix:apacheのエラーログ – Ekalabya

+0

でそのようなファイルやディレクトリ んmaillogにに何がありますか?あなたはpostfixをインストールしましたか?あなたは何を使っていますか? – djdy

+1

また:su/usr/sbin/setsebool -P httpd_can_sendmail on – djdy

1

SELinuxが有効になっている可能性があります。また、SELinuxのデフォルト設定に従って、Apache/Webサーバーによるメール送信は許可されません。

getsebool -a | grep mail 

Apacheが送信できるように構成さSELinuxのに順番にサンプル出力今

allow_postfix_local_write_mail_spool --> on 
httpd_can_sendmail --> off 
logging_syslogd_can_sendmail --> off 

、:SELinuxのが有効になっており、その下のコマンドを実行し、電子メールの送信を停止するように構成されているかどうかを確認するには

電子メールで以下のコマンドを実行してください:

setsebool -P httpd_can_sendmail on 

この回答を確認する、解決する私の問題: Not able to send mail when running through webserver but able to send from command line with same php script

関連する問題