sakuraサーバで.mailfilterで下記のような記述をして受け取ったメールを別プログラムで処理しようとしていますがうまくいきません。なにか解決方法がありますでしょうか

今までは、pop.phpを手動で動かしていたので、メール処理ができることは確認しています。

.mailfilter 600
cc "| /usr/local/bin/php -q /home/*****/www/*****/popcall.php"

popcall.php 755
<?php
sleep(10);
exec(/usr/local/bin/php /home/*****/www/******/pop.php);
?>

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/12/05 09:40:04

回答0件)

回答はまだありません

  • id:rouge_2008
    popcall.phpおよびpop.phpが実行されている事は確認できているのでしょうか?
    次のQ&Aにあるように、PHPのパスはphpファイルの方で指定するとどうなりますか?

    http://q.hatena.ne.jp/1167279986

    .mailfilter 600
    cc "| /home/*****/www/*****/popcall.php"

    popcall.php
    <?php
    #!/usr/local/bin/php -q

    sleep(10);
    ...



    http://faq.sakuratan.com/wiki/wiki.cgi?%a5%e1%a1%bc%a5%eb#i37
    『プログラムの実行ディレクトリは.mailfilterのあるディレクトリなので注意。』との事ですので、popcall.phpから実行しているスクリプト(pop.php)で、相対パスを使用している場合は、絶対パスにする必要があるかもしれません。
  • id:rouge_2008
    上記コメントでpopcall.phpでPHPのパスの記述場所を間違えていました。

    popcall.php

    #!/usr/local/bin/php -q
    <?php
    sleep(10);
    ...



    特に理由がないのでしたら、「.mailfilter」から直接pop.phpを実行してはいかがでしょうか?

    cc "| /usr/local/bin/php -q /home/*****/www/*****/pop.php"
  • id:rouge_2008
    cd でカレントディレクトリを変更してから、pop.phpを実行するとパスを書き換えなくても大丈夫だと思います。

    popcall.php

    <?php

    sleep(10);
    exec(cd /home/*****/www/******; /usr/local/bin/php /home/*****/www/******/pop.php);

    ?>

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません