人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

.qmailについての質問です。
下記のような問題で悩んでいます。
非常に初歩的な内容かもしれませんが、.qmail の
内容やプログラムの内容など、変更させながら
数回テストを行っていますが、問題が解決できません。
恐縮ですが、皆様のお知恵を拝借できればと思います。
よろしくお願い致します。

▼目的
ある特定のメールアドレスでメールを受信した際に、
自動的にあるPHPが実行されるという内容を実現したいと
考えています。

▼前提
メールは、sendmail ではなく、qmail を使っています。

▼対応
下記の内容で .qmail を作成し、メールユーザーの
ディレクトリにアップロードしました。

▼問題
該当のメールアドレス宛にメールを送っても、
PHPが実行されません。

▼備考
PHPファイルは、ブラウザ経由でアクセスすると、
正常に動作します。

| true
./Maildir/
| /usr/bin/php /home/httpd/vhosts/domain.com/httpdocs/test.php

●質問者: KarzZombie
●カテゴリ:インターネット ウェブ制作
✍キーワード:HOME httpd PHP qmail sendmail
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● practicalscheme
●0ポイント
◎質問者からの返答

早速の御回答ありがとうございます。

▼qmailのログ

/var/log/maillog にはメッセージは残っていませんでした。データサイズ0byteでした。

▼.qmailのパーミッション

当初 rw------- で、その後、rwx--x--xで行って失敗。

さらにrwxr-xr-xで行って失敗でした;;


2 ● znz
●200ポイント

ブラウザ経由でアクセスするのと.qmailから実行では環境変数や実行されるユーザなどの環境が違うと思いますが、そのあたりはどちらでも動くようにtest.phpを作っていますか?


動作確認の方法の1つとして、メールユーザでログインしてMaildirに保存されたメールを使って

/usr/bin/php /home/httpd/vhosts/domain.com/httpdocs/test.php < ~/Maildir/cur/適当なメール

のように実行してみて期待通りに動きますか?

◎質問者からの返答

御回答ありがとうございます。

不勉強で申し訳ありませんが、qmailとLinuxのコマンドラインに触れるのが今回が初めてでして、返答が的を得ていない部分があるかと思いますが、ご承知沖下さい。

▼test.php について

・まず、qmail側とブラウザ側とでどのように挙動が異なるかよくわかっていないのですが、test.phpの内容はアクセスがあった瞬間にdate()で現在時刻を取得し、log.txtというファイルを開き、現在時刻を保存していくというものです。

・特に環境変数を利用する仕様にはなっていません。

・test.php 、log.txt、ともにパーミッションは777を設定しています。

・ブラウザ以外に、cronから

/usr/bin/php /home/httpd/vhosts/domain.com/httpdocs/test.php

――と指定して実行した場合、正常に動作します。

▼Maildirについて

ごめんなさい;;

・Puttyを使っているのですが、メールユーザーでのログイン方法がわかりませんでした。

・root でログインして、メールユーザーのmaildir/cur を確認したところ、一切ファイルが残っておりませんでした。

……もしかして……原因はここでしょうか::

実は、関係ないと思って上記情報に記載しておりませんでしたが、このサーバーではPLESKという管理ツールを利用して、普段管理を行っています。

……この影響で、そもそもqmailで処理されていないとか、そういうのでしょうか?

・激しくごめんなさい;;

下記コマンドの打ち方がわかりませんでした。

/usr/bin/php /home/httpd/vhosts/domain.com/httpdocs/test.php < ~/Maildir/cur/適当なメール

< はそのまま打つ形で、

~/Maildir/cur/適当なメール は、例えば /var/qmail/mailnames/ドメイン名/ユーザー名//Maildir/cur/適当なメール と変更させればよいでしょうか。

……お手数かけてごめんなさい。

━2006/03/20/14:46追記━

すいません;

maillogを調べるところが違ったようです。

maillogを調べたところ、

delivery 8447: deferral: Status:_404_/Content-type:_text/html_/X-Powered-By:_PHP/4.3.2_/_/No_input_file_specified./

――という形で404が吐き出されていました。

どうもファイルの指定違いのようなので、ファイルの指定を変えて再度チャレンジしてみます。

━2006/03/21/1:01追記━

いろいろ調べながら動かしてみたところ、メールユーザーではアクセスできないディレクトリにプログラムが置かれていたことがわかりました。

プログラムの場所をメールユーザー以下のディレクトリに移し、正常稼動しました。

お騒がせしてすみませんでした。

解凍してくださった皆さんには些少ですがポイントを差し上げます。

御回答ありがとうございました。


3 ● practicalscheme
●200ポイント

2度目の回答です。ずばりと解決することはできなさそうなのでポイントは不要です。

◎質問者からの返答

再回答ありがとうございます。

.qmailはexecutableにしたらまずいです。<承知しました。

▼メールユーザーログインについて

・上記の方への返答にも記載しましたが、メールユーザーログインがわからないことと、qmail-localの手動起動のコマンドが、実際に私自身が打つ際の具体的な書式がわかりません。

Linuxの知識に乏しいため、もう少しネット各所と本で基本を見につけてチャレンジし、メール手動起動してみようと思います。

・また、これも上記の方の部分で書いた内容ですが、cron で /usr/bin/php /home/httpd/vhosts/domain.com/httpdocs/test.php と書いて実行させる限りは正常に動作します。

▼確実に動くプログラム

今いまは時間が取れないのですが、実行してみます。

━2006/03/20/14:46追記━

すいません;

maillogを調べるところが違ったようです。

maillogを調べたところ、

delivery 8447: deferral: Status:_404_/Content-type:_text/html_/X-Powered-By:_PHP/4.3.2_/_/No_input_file_specified./

――という形で404が吐き出されていました。

どうもファイルの指定違いのようなので、ファイルの指定を変えて再度チャレンジしてみます。

━2006/03/21/1:01追記━

いろいろ調べながら動かしてみたところ、メールユーザーではアクセスできないディレクトリにプログラムが置かれていたことがわかりました。

プログラムの場所をメールユーザー以下のディレクトリに移し、正常稼動しました。

お騒がせしてすみませんでした。

解凍してくださった皆さんには些少ですがポイントを差し上げます。

御回答ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ