[PHP-users 32669] Re: mail関数からのメールの送信ができません

goungoun gounx2 @ gmail.com
2007年 9月 28日 (金) 02:10:05 JST


こんにちは。

状況をまとめると。

以下をhoge.phpで保存して、
  <?php $ret=mail("root","subject","body"); echo "\nret=$ret \n"; ?>
これを、cli版phpから実行するとメール送信できるが、
apache経由でアクセスしたとき、メールが送信できない。
ということですね。

ということは、メール送信できない理由としては
A)cli版php と apache経由のphp の設定が違う?
B)apacheを実行しているユーザからはメールを送れない何かがある?
に絞り込まれてくると思います。

次の手段としては、

1)apacheの実行ユーザは?
  ps -ef | grep apache などで確認
  仮にapacheだったとして話を進めます。
  (apacheとかwwwとかwww-dataとかだと思います)

2)apacheユーザになって、php実行してみる。
  su で管理者になってから、
  su - apache でapacheユーザになって、
  echo '<?php $ret=mail("root","subject","body"); echo "\nret=$ret \n"; ?>' | php 
  とか
  echo '<?php $ret=mail("root","subject","body"); echo "\nret=$ret \n"; ?>' | php -d sendmail_path="cat -"
  とか
  echo '<?php $ret=mail("root","subject","body"); echo "\nret=$ret \n"; ?>' | php -d sendmail_path="cat -" | /usr/sbin/sendmail -t -i
  やってみる。

とかでしょうか。

これらがメール送信できるようなら、B)は除外できると思われるので

A)の線で調べるとなると、

<?php phpinfo() ?>

をcliからとapacheからで出力して、
違うところを見つけるぐらいでしょうか。


-- 
goungoun <gounx2 @ gmail.com>
http://goungoun.dip.jp/app/



PHP-users メーリングリストの案内