[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 メーリングリストの案内