トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

PHP、メール送信できない?

[カテゴリ:PHP]

PHP、メール送信できない?

mail()とかからメール送信できないときどうするか。

↓に回答したもののまとめ
http://ml.php.gr.jp/pipermail/php-users/2007-September/033186.html

解決に近づくためのネタ

  • sendmail単体で送信できるか?
  • cli版(コマンドライン)とdso版(apache経由)との違い。
  • SELinuxが有効になってると拒否されることもある。

具体的な確認方法

cli版phpでメール送れるか?

sendmailへ送るであろうデータを確認

$ echo '<?php $ret=mail("root","subject","body"); echo "\nret=$ret \n"; ?>' | php -d sendmail_path="cat -"

sendmailへパイプしてみる

$ echo '<?php $ret=mail("root","subject","body"); echo "\nret=$ret \n"; ?>' | php -d sendmail_path="cat -" | /usr/sbin/sendmail -t -i

本来の姿

$ echo '<?php $ret=mail("root","subject","body"); echo "\nret=$ret \n"; ?>' | php 

apacheの実行ユーザから cli版phpでメール送れるか?

apache の実行ユーザ

$ su -
# su - apache

になって、前節のチェックしてみる。

cli と dso の phpinfo 比較

双方で

<? phpinfo(); ?>

を実行し比較する。

最終更新時間:2007年09月28日 10時49分01秒