- ベストアンサー
phpで、メール自動受信を作りたい
phpを勉強中です。 phpは、クライアントからのリクエストで起動されると思いますが、そうではなく、受信メールを自動監視して、メールを受信したら、自動的に返信する、というシステムを作りたいのですが、 受信メールを監視するというループは、どうやって起動すればいいでしょうか。(画面のないプログラム) よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
MAT(メール配送システム)に何を使ってるかわかりませんが、例えばqmailを使っていた場合、 .qmailファイル(ドットqmail)の利用でメール受信時に指定したアクションを起こすことができます。 postfixなら.forwardファイルです。 これらのファイルにあらかじめ作成したPHPプログラムを絶対パスで指定しておくと、 メール受信時にPHPプログラムを起動させることができます。 監視ではなく、受信によりプログラムキックされるということです。 PHPの起動は /usr/local/bin/php -f /home/xxx/xxx.php と、コマンド起動形式で記述です。 送信元アドレス、本文などの情報は環境変数や標準入力で取得できます。 .qmail、.forwardへの記述方法は調べてください。 PHPならばパーミッションは実行可能形式にする必要はありません。 但しこれらの方法は恐らく「サーバーのルート権限」がないとできないと思われます。 (レンタルサーバーであれば厳しいかも、です) となると#1の方が言うようにPOPサーバーに接続しメールデータを ソケットで受信するPGを作成、crontabを利用して定期的に起動させる、 とういう方法しかないでしょうね。 設定にはシェルの利用が不可欠ですし、レンタルサーバーなら1分間 に何回もPHPを起動させると怒られるかもしれません・・・
その他の回答 (1)
- seta_takahiro
- ベストアンサー率60% (23/38)
定期的に何かを監視するなら、cronを使うのが楽だと思います。 cron もしくは crontab で検索して情報を探すと良いと思います。 もしかしたらWebブラウザからPHPを動かす形式しか使っていないのかな という印象を受けましたがが、 phpでも「php xxx.php」と言う形でコマンドラインから実行出来ますし、 スクリプトの先頭行に #!/usr/bin/php のような物を置いて、 chmod a+xする、という方法で シェルスクリプトの様な動かし方も出来ます。 いろいろハードルはあると思いますが、がんばってください。
お礼
ありがとうございました。 検討の方向性はわかりました。 (私のスキルでできるかはわかりませんが) トライしてみます。
お礼
ありがとうございました。 検討の方向性はわかりました。 (私のスキルでできるかはわかりませんが) トライしてみます。