[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
やりたいことは以下。
・メール受信→メール内容をPHPで処理
(1) .forward の登録
メールを転送するのに使うものだが、パイプによりプログラムとかに内容を渡せる。
(例)
"|/usr/bin/php /www/html/hoge.php"
これでメール受信したとき、phpコマンドにより、hoge.phpが実行される。
(2) hoge.php の先頭に #!/usr/bin/php -q と書く
(例)
#!/usr/bin/php -q
<?php
...
?>
これでPHPコマンドラインインターフェースで実行される。"-q" でHTTPヘッダを抑制。
(3) PHPで受信メール内容を読み取る方法
標準入力で渡されるので、標準入力の読取と同じ。
(例)
if(($stdin=fopen("php://stdin",'r') )!==FALSE ) {
while( !feof($stdin) ) {
$line = fgets($stdin, 4096);
}
fclose($stdin);
}
※メールを送りつけて動作を確認するも、動く形跡なし。。
調べたところ、.forwardのパイプ渡しで実行できるコマンドが "smrsh"という
やつで制限されているようだ。
環境によって設定場所はことなるようだが、うちは、以下でできた
/etc/smrsh のディレクトリにphpのコマンドを置く(シンボリックリンクで良い)
(例)
#cd /etc/smrsh
#ln -s /usr/bin/php