Ktai Entryをさくらインターネットで活用してみる(正解版)

前記事は誤爆だったのだ。(笑)
まあ、これがきっかけでKtai Entryの作者様から直々にコメントをもらえたり、結果的には解決に至ったのでそれはそれでよかったの思うのだ。

ってことで、さくらインターネットでKtai Entryを使ってるけど「メール着信時に投稿スクリプトを起動させる場合」ってのがうまく動かないよ~とお悩みの方々に一つの正解を提示してみようと思う。

1. Ktai Entryをインストール(プラグインに追加)し、メール投稿できるようにする。もちろん投稿受付メールアドレスはさくらインターネットで作成したアドレ スを使用する。とりあえず、Word Pressのダッシュボードの「設定」→「メール投稿」の「POP3読み込み間隔」は「15分」を選択しておく。
2. メールで記事を投稿して、サイトに記事が投稿されることが確認できたら、「POP3読み込み間隔」を「しない」を選択。
3. さくらインターネットのサーバコントロールパネルの「メールアドレスの管理」で投稿受付メールアドレスの「メール転送」設定をして、すぐに「転送先メール アドレス」を削除する。(この作業によってメールボックスに .mailfilter というファイルが作成される)
4. FTPクライアントでさくらインターネットのサーバーに接続して、MailBoxディレクトリの投稿受付メールアドレスのディレクトリ内にある .mailfilter ファイルをダウンロード。テキストエディタで開いて次のように記述して保存する。

cc "| /usr/local/bin/php -q /home/hogehoge/www/moge/mage/ktai_entry/inject.php"

※ /home/以降は各々の環境に合わせて記述する。要はinject.phpのパスを記述。
5. FTPクライアントで .mailfilter ファイルを元のディレクトリにアップロードする。ファイルのパーミッションは600。
6. FTPクライアントで inject.php ファイルをダウンロード。テキストエディタで開いて、次の記述を見つける。

while ($line = fgets(STDIN, 1024)) {
    $message .= $line;
}

この部分3行を次の4行で書き換える。

$fp=fopen("php://stdin",'r') or die('Error');
while( !feof($fp) ){
    $message .= fgets( $fp ,1024);
}

7. FTPクライアントで inject.php ファイルを元のディレクトリにアップロードする。ファイルのパーミッションは744。
以上、終了。
STDINとか("php://stdin",’r’)に関してはよく知らないので自分で調べてね。

なお、この改造のために「さくらインターネットでリアルタイムメール処理」を参考にさせていただきました。
また、この改造で何か起きても責任は取れませんので、自己責任でやっちゃってください。

Spread the love
  •  
  •  
  •  

3 Responses

  1. […] 分からなかったのですが、この辺りのテクニックがプログにいくつかあり読み比べながら同じサーバーだったこともあって http://www.incho.com/blog/?p=252 のプログの記事を教科書にしました。 […]