• ベストアンサー

phpで、メール自動受信を作りたい

phpを勉強中です。 phpは、クライアントからのリクエストで起動されると思いますが、そうではなく、受信メールを自動監視して、メールを受信したら、自動的に返信する、というシステムを作りたいのですが、 受信メールを監視するというループは、どうやって起動すればいいでしょうか。(画面のないプログラム) よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • gentaro
  • ベストアンサー率47% (105/221)
回答No.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を起動させると怒られるかもしれません・・・

toco_eno
質問者

お礼

ありがとうございました。 検討の方向性はわかりました。 (私のスキルでできるかはわかりませんが) トライしてみます。

その他の回答 (1)

回答No.1

定期的に何かを監視するなら、cronを使うのが楽だと思います。 cron もしくは crontab で検索して情報を探すと良いと思います。 もしかしたらWebブラウザからPHPを動かす形式しか使っていないのかな という印象を受けましたがが、 phpでも「php xxx.php」と言う形でコマンドラインから実行出来ますし、 スクリプトの先頭行に #!/usr/bin/php のような物を置いて、 chmod a+xする、という方法で シェルスクリプトの様な動かし方も出来ます。 いろいろハードルはあると思いますが、がんばってください。

toco_eno
質問者

お礼

ありがとうございました。 検討の方向性はわかりました。 (私のスキルでできるかはわかりませんが) トライしてみます。

関連するQ&A