Suematsu
メンバー
3 years前の投稿 #
Ktai Entryで、「メール着信で投稿スクリプト inject.php を起動させる方式」の設定を仕様としています。
サーバーはさくらインターネットで、PHPのバージョンは5.2.6です。
.mailfilterに
to "| /usr/local/bin/php /home/hoge/www/wp/wp-content/plugins/ktai_entry/inject.php"
exit
とすることで、inject.phpは起動されているようなのですが、投稿が反映されません。
エラーログを取ってみると、
2008-07-01 21:08:26 The Message is too short.
という表示になります。
たしかにテストの投稿なので短い内容のメールですが・・・そうゆう意味ではないですよね?
何がおかしいのでしょう。
よろしくお願いします。
2008-07-01 21:08:26 The Message is too short.
これは標準入力からメッセージが受け取れなかった、という意味です。この記述だと、標準入力が /usr/local/bin/php に渡ってしまっているのかもしれません。
inject.php に実行権限を与えて、かつ、先頭に #! /usr/local/bin/php を追加して、.mailfilter を以下のようにすればどうでしょう。
to "| /home/hoge/www/wp/wp-content/plugins/ktai_entry/inject.php"
Suematsu
メンバー
3 years前の投稿 #
lilyfanさん、アドバイスありがとうございます。
上記の通り設定してみましたが、症状は変化しませんでした。
何かさくら特有の癖があるんでしょうかねえ・・・(>_<)
もう少し頑張ってみます。
併用している他のプラグインが STDIN を食ってしまっている可能性はないでしょうか。inject.php 起動方式は、WP-Cache とかと相性がいまいちなことが判明しています (Cache の多重書きこみ防止用のセマフォ生成に失敗する etc)。
kannomonooki
メンバー
3 years前の投稿 #
横レスごめんなさい・・・
さくらはQmailじゃなくてSENDMAILだったと思うのですが・・・
だから使えなかったように認識していたのですが・・・
自分の認識が間違いだったらごめんなさい。
借りたサーバによって違うということは考えにくいので・・・
さくらはQmailじゃなくてSENDMAILだったと思うのですが・・・
だから使えなかったように認識していたのですが・・・
MTA の違いはあまり関係ありません。sendmail でも STDOUT/STDIN でメッセージを渡すというインターフェースは同じだと思いますので。
エラー時の終了コードについては qmail べったりの実装なので、postfix や sendmail では不具合があるかもしれませんが、今回の事象はそれとは違いますし。
# sendmail は10年くらい使ってないので、もう忘れてしまっています ;-)